有用openacc给A卡写并行代码的吗
amd吧
全部回复
仅看楼主
level 6
手头的计算以双精度为主,A卡双精度性价比爆炸(特别是Radeon VII)。我目前选的是OpenACC,这样可以最小化代码移植的工作量。具体用的PGI编译器,貌似安装的windows版本目录里只有CUDA,所以它支不支持A卡呢?被NVIDIA收购的PGI能公正对待intel的CPU和AMD的GPU吗[疑问]
2019年03月16日 14点03分 1
level 7
CUDA只支持N卡。如果你用显卡来作并行计算,最方便的还是 CUDA ,这是经验之谈。
2019年03月16日 15点03分 3
N卡双精度连CPU都不如……
2019年03月16日 15点03分
@哈哈哈哈🐼 我的应用不需要双精度。连CPU的程序我都用单精度。现在主流的就是 CUDA ,再就是 OpenCL ,其他那些名字都没听过的,支持就会很差。呵呵,相信你走了一大圈,发现也只有这两个能用。
2019年03月16日 16点03分
@cybertingred matlab默认双精度,超算上跑的程序默认都双精度,现在也有研究为压缩通信带宽提高计算速度采用单精度的。总之科研工程(材料计算流体仿真之类)主流精度是双精度,不然计算卡也不用保留双精度浮点算力了。
2019年03月16日 16点03分
@哈哈哈哈🐼 当你问CUDA能不能支持A卡,已经说明你对这方面确实很不了解。我的建议是你真要搞并行,老老实实买N卡,不然真的是浪费钱。
2019年03月16日 16点03分
level 1
AMD有个ROCm,那个东西貌似就是CUDA改了改名字而已,还开源,就是没人用
2019年03月16日 15点03分 4
现在希望有一个可移植的方案,指令集更新、平台更换就要重写太**了。openacc连申威都支持(gcc的),特么不支持A卡真是***了
2019年03月16日 15点03分
回复 哈哈哈哈🐼 :AMD有一种自动将CUDA代码转换成ROCm的玩意
2019年03月16日 17点03分
level 14
你可以选择titanv,性价比很高,5120cuda加7t的双精度,vii只有0.8t
2019年03月16日 16点03分 5
vii不是1/4双精度么?那不是有2T多?
2019年03月16日 16点03分
VII是3T,之前媒体以讹传讹说0.8T。
2019年03月17日 01点03分
@哈哈哈哈🐼 那性价比还可以
2019年03月17日 01点03分
@Obelisques TITAN V的显存容量带宽不如Radeon VII,价格是Radeon VII四倍多,双精度性能两倍。然而考虑到AMD那惨不忍睹的生态,TITAN V还真他*有性价比
2019年03月17日 04点03分
level 15
科学计算 大环境是cuda
2019年03月16日 16点03分 6
level 15
不支持
2019年03月16日 17点03分 7
level 8
cuda相对来说资源会多很多
2019年03月16日 18点03分 8
level 6
我以前是手写AVX的,也有效果,矩阵乘法(单线程)是MKL的70%性能,手写特定的功能速度可以超过MKL。但换了新指令集/平台就跪了,直到现在我都不手写AVX512,看AVX512指令数量就知道为什么了。
总之,我需要一些blas层无法表达的功能,或做的不够好的功能,这些功能openacc能做到一部分。鉴于MKL的blas已经算是最丰富的,其他blas(cublas included)更不能直接满足我的需求,如果使用CUDA必然是手写kernel函数。又变成了无法移植的东西。
不要问我为什么对可移植有这么深的执念。我用pthread,windows的API写过多线程,现在只想用openMP。优化一时爽,移植火葬场。
额对了,如果只是简单想用CUDA库函数层次的功能,matlab就可以了,代码改动很小。
opencl确实很诱人,Xilinx的加速卡都是用的opencl,但这玩意貌似要凉。。。
2019年03月17日 02点03分 9
level 9
[滑稽]所以说蕾7是亏本交朋友真不是空穴来风,带ecc带双精度,就差给个专业卡驱动了,感觉可以尝试修改驱动识别,当mi50用没啥问题啊
2019年03月17日 15点03分 10
level 8
要双精度那你就没得选,只有amd。
既然是amd,那就不能openacc
2019年03月18日 01点03分 11
level 6
超算上就是Tesla V100,我电脑上插的是1080TI,需要的话加TITAN V也没问题。
我只是想寻找更多的可能性,加速卡不止显卡一种,这几年还会有各种各样的加速卡,以及像申威(神威太湖之光用CPU)那种把加速部件做到CPU内部共享内存地址的CPU。
各种算法多如牛毛,当中不乏被广泛采用却尚未被收编进知名库函数的算法,我所了解最坑爹的是svd分解包PROPACK,这个包被很多算法使用,但这个包本身只有Fortran接口和matlab接口,而matlab接口是C/Fortran/matlab混合编程的[喷]。这就是我为什么这么看重可移植性的原因之一,像这种库函数移植到其他平台简直要人命。对了数值分析入门教材的算法都是例子不要太当真。。。
至于精度,哪怕CPU的float速度也是高于double的,搞科学计算、工程软件开发的人不比我笨。图像处理、机器学习等一些领域float足以,不代表其他领域也是float就够了。
类似的,一般人觉得代码出错就出错呗,那是因为你觉得代码错误不会造成实际损失。我因为不了解单片机PWM发生器的技术细节,写的代码有问题,导致H桥直通烧管子,控制机器人舵机的代码出了问题,舵机堵转卡死差点挂掉,遥控模型代码出错导致模型失控,买了个有刷电调结果这南桥玩意的控制芯片和BEC输出共用一组电源,外部大功率舵机一动作就掉电重启。
每个人情况不一样,你的经验不一定适合别人。
2019年03月18日 05点03分 12
level 9
openacc是n卡专属,不支持a卡
2019年03月18日 05点03分 13
OpenACC支持A卡,AMD在2014年11月就宣布加入OpenACC,2015年1月宣布可以用OpenACC进行编程
2019年07月15日 01点07分
level 1
用OPENACC
PGI编译支持c/c++/fortran 支持 AMD的并行加速
2019年03月19日 06点03分 15
1