想基于pytorch做针对特定功能的CUDA编程优化,有没有推荐的学习书籍或者课程,非常感谢!

我正在研究如何对张量分解问题进行并行优化,而pytorch中尚未有专门做张量分解的CUDA实现,有点不知道该如何下手去学习,所以想请教一下,多谢!

针对特定功能的CUDA的优化分为两个步骤,一个是数学推导,一个CUDA实现。
1、张量分解的数学推导网上有很多博客,题主可以自行搜索,也可以购买一些数学类的教材
2、有了数学的推导,就是CUDA实现,CUDA实现需要看一些教程入门,主要是学习CUDA的语法,包括官方提供的CUDA C Programming Guide,《GPU高性能编程CUDA实战》,学习的时候除了语法的使用,需要着重关注一些速度优化的trick,比如纹理内存的使用等
3、学完语法之后,可以先看一些CUDA并行优化的例程,理解一下CUDA并行加速的思想,可以搜一下nvidia的Mark Harris大神有份很经典的用CUDA优化parallel reduction的例程,https://developer.download.nvidia.cn/compute/cuda/1.1-Beta/x86_website/projects/reduction/doc/reduction.pdf
4、值得注意的是,并行优化的算法思路可能和平时使用的算法优化思路很不一样,因为并行优化使用的计算单元多,需要考虑显存的读取,IO速度等,有的时候遍历的算法反而是速度最快的。
5、根据你数学推导,结合并行优化算法的设计,最后使用CUDA编程实现优化,并搭建与pytorch的接口,这个可以参考我的博客,https://blog.csdn.net/wqwqqwqw1231/article/details/117449965,及官方文档,https://pytorch.org/tutorials/advanced/cpp_extension.html

各位答主如果能够结合题目,回答基于CUDA的pytorch解决问题的相关案例,方法等,就更好了,单纯介绍Python,或者介绍pytorch是什么的书籍,可能对小弟我没有很大帮助呢。。。


可以看看pytorch的扩展模块,看需求有时候还需要直接使用cuda编程来辅助完成。
书籍的话推荐看看cuda编程,或者直接官方带的文档
https://docs.nvidia.com/cuda/cuda-c-programming-guide/

https://blog.csdn.net/MrR1ght/article/details/104616252

看这本

书籍没有专门的,你可以看看这个 https://zhuanlan.zhihu.com/p/48463543 或者github上看看

一楼应该就是你的问题本主吧,他的答案基本很全面了

https://developer.nvidia.com/cuda-python

https://blog.csdn.net/weixin_37988176/article/details/109432239?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-16.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-16.pc_feed_download_top3ask

这上边很全:https://ptorch.com/news/114.html 如果OK麻烦采纳

这是一些pytorch的书籍链接,你可以看看https://www.bookstack.cn/explore?cid=180&tab=popular

不建议用pytorch,C++更好。