我正在研究如何对张量分解问题进行并行优化,而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是什么的书籍,可能对小弟我没有很大帮助呢。。。
https://blog.csdn.net/MrR1ght/article/details/104616252
看这本
书籍没有专门的,你可以看看这个 https://zhuanlan.zhihu.com/p/48463543 或者github上看看
一楼应该就是你的问题本主吧,他的答案基本很全面了
https://developer.nvidia.com/cuda-python
这上边很全:https://ptorch.com/news/114.html 如果OK麻烦采纳
这是一些pytorch的书籍链接,你可以看看https://www.bookstack.cn/explore?cid=180&tab=popular
不建议用pytorch,C++更好。