使用CUDA“预热”GPU的最佳方法?

使用CUDA“预热”GPU的最佳方法?,cuda,gpu,Cuda,Gpu,我知道这条线 但是,即使有伟大的互联网,这本CUDA的书和它附带的代码示例,我也找不到一个预热内核的例子 我的问题是:在运行计时器实验之前,用CUDA预热GPU的最好、最干净的方法是什么 在本书的示例中,定义了一个类似于此的简单内核,作为预热在每个可见GPU上执行: __global__ void warm_up_gpu(){ unsigned int tid = blockIdx.x * blockDim.x + threadIdx.x; float ia, ib; ia = ib

我知道这条线

但是,即使有伟大的互联网,这本CUDA的书和它附带的代码示例,我也找不到一个预热内核的例子


我的问题是:在运行计时器实验之前,用CUDA预热GPU的最好、最干净的方法是什么

在本书的示例中,定义了一个类似于此的简单内核,作为预热在每个可见GPU上执行:

__global__ void warm_up_gpu(){
  unsigned int tid = blockIdx.x * blockDim.x + threadIdx.x;
  float ia, ib;
  ia = ib = 0.0f;
  ib += ia + tid; 
}

这只有在你分析的时候才有必要。即便如此,它的有用性也值得怀疑。你的目标是什么?@3说到这里,作为一个初学者,我的目标首先是获得知识,以防我需要它,做到这一点。我的论文是关于FDTD的GPGPU实现。热身是没有必要的。将所有数据放到GPU上需要时间,但这应该是性能分析中的一个单独类别,在开始时标记为开销BSA cudaFree0不会有什么坏处。这就确保了惰性上下文创建已经被排除在外了。好吧,有时候最好的办法是运行两次,然后只测量第二次。但这只是性能数据。不要在日常使用中预热。