【pytorch】op的c++和cuda编写

【pytorch】op的c++和cuda编写(一)

官方文档

需求:当你需要频繁的使用该自定义操作,或者调用很昂贵,或者需该操作要用到一些c/c++库。

c++扩展允许用户创建源外定义的PyTorch运算符,即与PyTorch后端分离的运算符。

c++扩展有两种形式:

  1. 使用setuptools提前构建
  2. 使用torch.utils.cpp_extension.load()即使构建

setuptools构建

  1. setup.py来让setuptools编译c++代码
from setuptools import setup, Extension
from torch.utils import cpp_extension


setup(name='lltm_cpp',
      ext_modules=[cpp_extension.CppExtension('lltm_cpp', ['lltm.cpp'])],# CppExtension是setuptools的便利包装.Extension传递正确的include路径并将扩展语言设置为c++
      cmdclass={
   'build_ext': cpp_extension.BuildExtension})# BuildExtension执行许多必需的配置步骤并检查,并且在混合c++ / CUDA扩展的情况下还管理混合编译

初步:编写c++操作

  • #include <torch/extension.h>包括编写c++扩展所需的所有必需的pytorch bit
  1. ATen库:用于张量计算的主要API
  2. pybind11:为c++代码创建的python绑定方式
  3. headers:管理AT
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值