
Mehrere einfache Beispiele für Toolkits für neuronale Netzwerke (Pytorch, TensorFlow usw.) Aufrufen benutzerdefinierter CUDA -Operatoren.
Wir bieten verschiedene Möglichkeiten, die Cuda -Kerne und ihre CPP -Verpackungen zu erstellen, einschließlich JIT, Setuptools und CMake.
Wir stellen auch mehrere Python -Codes zur Verfügung, um die CUDA -Kerne zu bezeichnen, einschließlich Kernel -Zeitstatistik und Modelltraining.
Für genauere Zeitstatistiken werden Sie NVPROF oder NSYS am besten zum Ausführen des Codes verwenden.
Kann nicht sicherstellen, dass ein erfolgreiches Laufen in anderen Umgebungen läuft.
├── 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
Führen Sie den Python -Code direkt aus.
Setuptools
python3 pytorch/setup.py installCmake
mkdir build
cd build
cmake ../pytorch
makeVergleichen Sie die Laufzeit von Kernel
python3 pytorch/time.py --compiler jit
python3 pytorch/time.py --compiler setup
python3 pytorch/time.py --compiler cmakeZugmodell
python3 pytorch/train.py --compiler jit
python3 pytorch/train.py --compiler setup
python3 pytorch/train.py --compiler cmakeCmake
mkdir build
cd build
cmake ../tensorflow
makeVergleichen Sie die Laufzeit von Kernel
python3 tensorflow/time.py --compiler cmakeZugmodell
python3 tensorflow/train.py --compiler cmakePytorch 自定义 cuda 算子教程与运行时间分析 详解 pytorch 编译并调用自定义 cuda 算子的三种方式 三分钟教你如何 pytorch 自定义反向传播
Q. ImporteurRor: libc10.so: Die freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis
A. Sie müssen vorimport add2import torch.
Q. TensorFlow.python.framework.errors_impl.notfounderror: Build/libadd2. SO: Undefiniertes Symbol: _Ztin10tensorflow8opkernele
A. Überprüfen Sie, ob${TF_LFLAGS}inCmakeLists.txtkorrekt ist.