官方测试程序gpu比cpu运行快,但为啥我写的程序在gpu上运行的还没有cpu快呢
话题里有Theano,那就按照Theano来了。1.首先分别在CPU和GPU上运行下面链接里的测试程序:testing-theano-with-gpu如果运行结果显示用不到GPU,那是安装或配置的问题。如果用到了GPU,但比CPU慢,那是GPU太低端?2.如果上面的程序GPU比CPU快,那就是自己代码的问题了。看一下GPU加速的技巧:tips-for-improving-performance-on-gpu。比如:大型矩阵的相乘、卷积等运算GPU加速明显;用updates修改shared variable的值GPU加速明显;GPU只在float32下加速;indexing、shuffling、reshape等操作GPU不加速;sum()等操作GPU比CPU慢;大量的数据拷贝会影响速度等等。
■网友
谢邀。gpu代码运行慢很正常,当时刚入门的时候,写出来的程序跟CPU运行的时间差不多。根据我的经验,有以下几个可能的原因:1、显卡。低端显卡跑出来的程序是有可能没有CPU跑得快的。2、运行模式。是debug模式还是release模式?debug模式是没有自动优化过的,而且还有很多附加的调试代码。3、程序自身。gpu代码优化是个体力活也是脑力活,只有充分契合gpu架构的代码才能实现较高的加速比。个人意见仅供参考。
■网友
如果没有parallel programming的基础的话,写出gpu code比cpu慢是很正常的。如果有条件的话,题主可以上youtube搜一下udacity开的parallel programming的课程。
■网友
试试cpu优化之后的theano 会有惊喜 并不用再关心谁快了 github·com/intel/theano
■网友
你应该学习并行计算。
■网友
提高并行度很重要,寄存器数限制、共享内存、bank conflict 都要考虑,还可以看看stream、texture memory来加速。Nsight很好用,可以分析出活跃warp数现在在什么地方,然后对应的去优化。总之要充分了解GPU内部的处理过程才能更好的优化。
■网友
那是因为你的代码没写好,你的代码并行度高吗?只有并行度高的才可能充分利用GPU的硬件资源,建议看看GPU的架构和一些自带的例子,重新修改你的代码
推荐阅读
- 招聘都要学历,何来程序员不看学历
- 银行系统的研发岗(程序员)是不是很难进(校招)推广到国企的研发岗(程序员)呢
- 大学再有三个月就结束了,没学到知识,参加一个软件测试培训机构好吗
- 坐标合肥,请问在哪里能捕捉到程序员这种生物他们大都出现在哪里呢
- 程序猿和产品汪能愉快的一起谈恋爱嘛
- 怎样成为一名合格的Python程序员?
- 官方回应“南华县学生被踢视频”:视频内容属实,责令涉事教师停职检查
- 我是程序猿养了条狗,取啥名字好
- 送程序员男友苹果无线耳机还是专业品牌耳机
- AutoLab|Lab测试:你以为奥迪A5就是你以为的“掀背版奥迪A4”?
