
Vários exemplos simples para kits de ferramentas de rede neural (Pytorch, Tensorflow, etc.) chamando operadores personalizados de CUDA.
Fornecemos várias maneiras de compilar os núcleos Cuda e seus invólucros de CPP, incluindo JIT, Setuptools e Cmake.
Também fornecemos vários códigos Python para chamar os núcleos CUDA, incluindo estatísticas de tempo do kernel e treinamento de modelos.
Para estatísticas de tempo mais precisas, é melhor usar o NVPROF ou o NSYS para executar o código.
Não pode garantir uma execução bem -sucedida em outros ambientes.
├── include
│ └── add2.h # header file of add2 cuda kernel
├── kernel
│ └── add2_kernel.cu # add2 cuda kernel
├── pytorch
│ ├── add2_ops.cpp # torch wrapper of add2 cuda kernel
│ ├── time.py # time comparison of cuda kernel and torch
│ ├── train.py # training using custom cuda kernel
│ ├── setup.py
│ └── CMakeLists.txt
├── tensorflow
│ ├── add2_ops.cpp # tensorflow wrapper of add2 cuda kernel
│ ├── time.py # time comparison of cuda kernel and tensorflow
│ ├── train.py # training using custom cuda kernel
│ └── CMakeLists.txt
├── LICENSE
└── README.md Jit
Execute diretamente o código Python.
SetupTools
python3 pytorch/setup.py installCmake
mkdir build
cd build
cmake ../pytorch
makeCompare o tempo de execução do kernel
python3 pytorch/time.py --compiler jit
python3 pytorch/time.py --compiler setup
python3 pytorch/time.py --compiler cmakeModelo de trem
python3 pytorch/train.py --compiler jit
python3 pytorch/train.py --compiler setup
python3 pytorch/train.py --compiler cmakeCmake
mkdir build
cd build
cmake ../tensorflow
makeCompare o tempo de execução do kernel
python3 tensorflow/time.py --compiler cmakeModelo de trem
python3 tensorflow/train.py --compiler cmakePytorch 自定义 cuda 算子教程与运行时间分析 详解 pytorch 编译并调用自定义 cuda 算子的三种方式 三分钟教你如何 pytorch 自定义反向传播
P. Importorror: libc10.so: Não é possível abrir o arquivo de objeto compartilhado: nenhum arquivo ou diretório
A. Você deve fazerimport torchantes deimport add2.
Q. tensorflow.python.framework.errors_impl.notfoundError: build/libadd2.so: símbolo indefinido: _ztin10tensorflow8opkernEle
A. Verifique se${TF_LFLAGS}emCmakeLists.txtestá correto.