有啥最简单的方法让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语句了,其他的就正常来吧


    推荐阅读