有啥最简单的方法让C语言中的for循环变为CUDA并行执行
你需要的是一个source-to-source的translator,比如:The hiCUDA Project Homepage 这样的项目。
■网友
我以前写过cuda,觉得加速不简单。先一行代码把数列(矩阵)初值从内存copy到显存,然后划分block和thread,然后决定用多少gpu shared memory (cache),考虑memory coalescing。如果真想优化,就还要对使用不同的block,thread,shared memory数量进行测试,选一个快的。最后别忘了把结果从显存copy回内存。整个下来代码变化很大。编译时用nvcc。只想通过简单修改就并行的话,我知道有一个OpenMP的C library。对for循环加progma,可以让好几个cpu线程分工算。用gcc编译就行,后面要貌似要加一个openmp的参数(不记得细节了。)
■网友
尽量避免让gpu做逻辑判断,也就是少用if。像你这个,可以把逻辑判断的0和1乘在赋值语句后面,这样就避免使用if语句了,其他的就正常来吧
推荐阅读
- 长寿花怎么养护?掌握两大方法,乖乖花开“爆盆”,花香四溢!
- 有啥方法,网站,项目可以自己练习计算广告学
- 直播会成为品牌传播的另一个途径么有哪些可行的方法感觉有戏又没头绪好捉急。
- |邳州市岔河镇探索创新工作方法以“三个凝聚”助力统战工作提质增效
- 100W——150W有啥好的车
- 小孩|手术矫正要20万,有什么可以不动手术的方法?小孩有点地包天
- 孩子|小孩发烧的处理方法有物理降温与药物退烧!但很多新手父母不会
- 最近有啥样的交友软件比较好玩呢
- 最近有啥好期待的网游玩
- 电子信息工程考研有啥偏软件类的专业可以报考
