我在tensorflow层的几个标准操作中已经看到(例如https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/maxpooling_op_gpu.cu.cc),代码CUDA_1D_KERNEL_LOOP(index,nthreads)作为前进和后退通行证的一部分...
我认为此处的“索引”以某种方式与底部要素地图的坐标有关,但不确定其确切含义...有谁可以帮助您?
小智 5
CUDA_1D_KERNEL_LOOP(i, n)是在中定义的预处理器宏tensorflow/core/util/cuda_kernel_helper.h。它提供了一个通用的控制流语句,该语句在Tensorflow代码库中的许多Cuda内核中使用。
该语句通常用于迭代内核中数组的元素。参数i是控制变量的名称,参数n是控制语句的停止条件。Cuda内核在并行线程中启动。每个线程通常对数组元素的子集进行操作。宏为访问所需的数组元素提供了一些便利。
在链接到的示例中,CUDA_1D_KERNEL_LOOP(index, nthreads)解释为:
for (int index = blockIdx.x * blockDim.x + threadIdx.x; index < nthreads; index += blockDim.x * gridDim.x)
Run Code Online (Sandbox Code Playgroud)
因此index,CUDA_1D_KERNEL_LOOP在进入后续代码块之前先声明并初始化。的确切含义index取决于在代码块中如何使用它。
| 归档时间: |
|
| 查看次数: |
880 次 |
| 最近记录: |