
العديد من الأمثلة البسيطة لمجموعات أدوات الشبكة العصبية (Pytorch ، TensorFlow ، إلخ) استدعاء مشغلي CUDA المخصصين.
نحن نقدم عدة طرق لتجميع نواة CUDA وأغلفة CPP الخاصة بهم ، بما في ذلك JIT و Setuptools و Cmake.
نقدم أيضًا العديد من رموز Python للاتصال بـ Cuda Kernels ، بما في ذلك إحصائيات وقت kernel والتدريب النموذجي.
لإحصائيات الوقت الأكثر دقة ، من الأفضل استخدام 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 جيت
تشغيل مباشرة رمز بيثون.
setuptools
python3 pytorch/setup.py installcmake
mkdir build
cd build
cmake ../pytorch
makeقارن وقت تشغيل kernel
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قارن وقت تشغيل kernel
python3 tensorflow/time.py --compiler cmakeنموذج القطار
python3 tensorflow/train.py --compiler cmakepytorch 自定义 cuda 算子教程与运行时间分析 详解 pytorch 编译并调用自定义 cuda 算子的三种方式 三分钟教你如何 pytorch 自定义反向传播
Q. المستورد: libc10.so: لا يمكن فتح ملف الكائن المشترك: لا يوجد مثل هذا الملف أو الدليل
أ. يجب عليك القيامimport torchقبلimport add2.
Q. Tensorflow.python.framework.errors_impl.notfounderror: build/libadd2.so: رمز غير محدد: _ztin10tensorflow8opkernele
A. تحقق مما إذا كان${TF_LFLAGS}فيCmakeLists.txtصحيح.