
신경 네트워크 툴킷 (Pytorch, Tensorflow 등)에 대한 몇 가지 간단한 예제 Custom Cuda 연산자를 호출합니다.
우리는 Cuda 커널과 JIT, Setuptools 및 Cmake를 포함한 CPP 포장지를 컴파일하는 몇 가지 방법을 제공합니다.
또한 커널 시간 통계 및 모델 교육을 포함하여 Cuda 커널을 호출하는 몇 가지 Python 코드를 제공합니다.
보다 정확한 시간 통계를 위해서는 NVPROF 또는 NSYS를 사용하여 코드를 실행하는 것이 가장 좋습니다.
다른 환경에서 성공적으로 실행할 수 없습니다.
├── 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
파이썬 코드를 직접 실행하십시오.
SetUptools
python3 pytorch/setup.py installcmake
mkdir build
cd build
cmake ../pytorch
make커널 실행 시간을 비교하십시오
python3 pytorch/time.py --compiler jit
python3 pytorch/time.py --compiler setup
python3 pytorch/time.py --compiler cmake기차 모델
python3 pytorch/train.py --compiler jit
python3 pytorch/train.py --compiler setup
python3 pytorch/train.py --compiler cmakecmake
mkdir build
cd build
cmake ../tensorflow
make커널 실행 시간을 비교하십시오
python3 tensorflow/time.py --compiler cmake기차 모델
python3 tensorflow/train.py --compiler cmakePytorch 自定义 cuda 算子教程与运行时间分析 详解 pytorch 编译并调用自定义 cuda 算子的三种方式 三分钟教你如何 pytorch 自定义反向传播
Q. importerror : libc10.so : 공유 객체 파일을 열 수 없음 : 해당 파일 또는 디렉토리가 없습니다.
A.import add2전에import torch가져와야합니다.
Q. tensorflow.python.framework.errors_impl.notfounderRor : build/libadd2.so : 정의되지 않은 기호 : _ztin10tensorflow8opkernele
A.CmakeLists.txt에서${TF_LFLAGS}가 올바른지 확인하십시오.