小编J. *_*eul的帖子

CUDA流和并发内核执行

我想使用流来并行化在单独的设备数据阵列上工作的内核的执行.数据在设备上分配并从先前的内核填充.

我写了以下程序,显示到目前为止我无法达到目标.实际上,两个非默认流上的内核在它们各自的流中顺序执行.

在具有最新Debian linux版本的2台Intel机器上观察到相同的行为.其中一款配备了CUDA 4.2的Tesla C2075,另一款配备了带有CUDA 5.0的Geforce 460GT.Visual Profiler显示4.2和5.0 CUDA版本中的顺序执行.

这是代码:

#include <iostream>
#include <stdio.h>
#include <ctime>

#include <curand.h>

using namespace std;

// compile and run this way:
// nvcc cuStreamsBasics.cu  -arch=sm_20  -o testCuStream   -lcuda -lcufft -lcurand 
// testCuStream  1024 512 512


/* -------------------------------------------------------------------------- */
//  "useful" macros
/* -------------------------------------------------------------------------- */


#define MSG_ASSERT( CONDITION, MSG )                    \
  if (! (CONDITION))                            \
    {                                   \
    std::cerr << std::endl << "Dynamic assertion `" #CONDITION "` failed in " << __FILE__ \
          << " …
Run Code Online (Sandbox Code Playgroud)

concurrency cuda cuda-streams

3
推荐指数
1
解决办法
4163
查看次数

标签 统计

concurrency ×1

cuda ×1

cuda-streams ×1