
Beberapa contoh sederhana untuk perangkat jaringan saraf (Pytorch, TensorFlow, dll.) Memanggil operator CUDA khusus.
Kami menyediakan beberapa cara untuk mengkompilasi kernel CUDA dan pembungkus CPP mereka, termasuk JIT, Setuptools dan CMake.
Kami juga menyediakan beberapa kode Python untuk memanggil kernel CUDA, termasuk statistik waktu kernel dan pelatihan model.
Untuk statistik waktu yang lebih akurat, Anda sebaiknya menggunakan NVPROF atau NSYS untuk menjalankan kode.
Tidak dapat memastikan berhasil berjalan di lingkungan lain.
├── 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
Langsung jalankan kode Python.
Setuptools
python3 pytorch/setup.py installCmake
mkdir build
cd build
cmake ../pytorch
makeBandingkan waktu berjalan kernel
python3 pytorch/time.py --compiler jit
python3 pytorch/time.py --compiler setup
python3 pytorch/time.py --compiler cmakeModel kereta
python3 pytorch/train.py --compiler jit
python3 pytorch/train.py --compiler setup
python3 pytorch/train.py --compiler cmakeCmake
mkdir build
cd build
cmake ../tensorflow
makeBandingkan waktu berjalan kernel
python3 tensorflow/time.py --compiler cmakeModel kereta
python3 tensorflow/train.py --compiler cmakePytorch 自定义 cuda 算子教程与运行时间分析 详解 pytorch 编译并调用自定义 cuda 算子的三种方式 三分钟教你如何 pytorch 自定义反向传播
Q. ImportersRor: libc10.so: tidak dapat membuka file objek bersama: tidak ada file atau direktori tersebut
A. Anda harusimport torchsebelumimport add2.
Q. Tensorflow.python.framework.errors_Impl.notfounderror: build/libadd2.so: Simbol yang tidak ditentukan: _ztin10TensorFlow8opkernele
A. Periksa apakah${TF_LFLAGS}diCmakeLists.txtsudah benar.