pytorch 如何调用cuda_torch.utils.cpp_extension对c++/cuda进行拓展

本文介绍了为何PyTorch需要对C++和CUDA进行扩展,以提升算法速度并充分利用GPU资源。详细阐述了从PyTorch 0.4到1.0后使用torch.utils.cpp_extension代替torch.utils.ffi进行扩展的过程,以及如何解决版本兼容问题。此外,还讨论了setuptools在构建和分发Python包中的作用,特别是对于包含C++和CUDA扩展的包。
摘要由CSDN通过智能技术生成

为什么pytorch要对c++/cuda进行拓展

在初始阶段,使用pytorch提供的接口组合搭配自己的神经网络就可以了,但是,随着深入进行,比如说要实现一个自己新的算法,或者是自己定义的新的层,光使用pytorch模块是不够的。虽然,pytorch在特定的模块上进行了很好的优化,,但加入将这些组合起来,一般pytorch只会按照设计好的操作去使用gpu通道,这样会使得通道空闲或者超负载,然而python解释器也不能对此进行优化,导致程序执行速度变慢,所以就需要对其进行拓展,才能充分利用gpu,加快算法速度。

拓展的具体实现过程

在pytorch0.4中,结合c语言和cuda进行拓展,使用torch.utils.ffi模块,主要内容可以参考Pytorch拓展进阶(一):Pytorch结合C以及Cuda语言。但在pytoch1.0之后,这个模块就用不了了,用torch.utils.cpp_extension来进行代替,该模块是对c++进行拓展,而且它具有最小(但通常足够的)的参数来构建c++扩展的优点,具体的使用过程可以参考Pytorch拓展进阶(二):Pytorch结合C++以及Cuda拓展。如果想要对多个c++文件和cuda文件进行拓展的话,具体实现可以参考maskrcnn-benchmark。

【注】在使用的过程中遇到以下错误:

ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值