
Plusieurs exemples simples pour les boîtes à outils de réseau neuronal (Pytorch, TensorFlow, etc.) appelant les opérateurs CUDA personnalisés.
Nous fournissons plusieurs façons de compiler les noyaux Cuda et leurs emballages CPP, notamment JIT, Settuptools et Cmake.
Nous fournissons également plusieurs codes Python pour appeler les grains Cuda, y compris les statistiques du temps du noyau et la formation des modèles.
Pour des statistiques de temps plus précises, vous utiliseriez mieux NVPROF ou NSYS pour exécuter le code.
Ne peut pas garantir une course réussie dans d'autres environnements.
├── 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
Exécutez directement le code Python.
Sétuptools
python3 pytorch/setup.py installCmake
mkdir build
cd build
cmake ../pytorch
makeComparez le temps d'exécution du noyau
python3 pytorch/time.py --compiler jit
python3 pytorch/time.py --compiler setup
python3 pytorch/time.py --compiler cmakeModèle de train
python3 pytorch/train.py --compiler jit
python3 pytorch/train.py --compiler setup
python3 pytorch/train.py --compiler cmakeCmake
mkdir build
cd build
cmake ../tensorflow
makeComparez le temps d'exécution du noyau
python3 tensorflow/time.py --compiler cmakeModèle de train
python3 tensorflow/train.py --compiler cmakePytorch 自定义 Cuda 算子教程与运行时间分析 详解 Pytorch 编译并调用自定义 Cuda 算子的三种方式 三分钟教你如何 Pytorch 自定义反向传播
Q. Importorror: libc10.so: Impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type
A. Vous devez faireimport torchavantimport add2.
Q. tensorflow.python.framework.errors_impl.notfounderror: build / libadd2.so: symbole non défini: _ztin10tensorflow8opkernele
A. Vérifiez si${TF_LFLAGS}dansCmakeLists.txtest correct.