gpt4 book ai didi

cuda - cuda中的预取(通过C代码)

转载 作者:行者123 更新时间:2023-12-04 12:23:01 25 4
gpt4 key购买 nike

我正在通过 C 代码在 CUDA(Fermi GPU)中进行数据预取。 Cuda 引用手册讨论的是 ptx 级别代码而不是 C 级别代码的预取。

任何人都可以将我与一些文档或有关通过 cuda 代码(cu 文件)预取的内容联系起来。任何帮助,将不胜感激。

最佳答案

根据 PTX manual以下是 PTX 中预取的工作原理:

enter image description here

您可以将 PTX 指令嵌入到 CUDA 内核中。这是来自 NVIDIA's documentation 的一个小样本:

__device__ int cube (int x)
{
int y;
asm("{\n\t" // use braces for local scope
" .reg .u32 t1;\n\t" // temp reg t1,
" mul.lo.u32 t1, %1, %1;\n\t" // t1 = x * x
" mul.lo.u32 %0, t1, %1;\n\t" // y = t1 * x
"}"
: "=r"(y) : "r" (x));
return y;
}

您可能会以 C 中的以下预取函数作为结论:
__device__ void prefetch_l1 (unsigned int addr)
{

asm(" prefetch.global.L1 [ %1 ];": "=r"(addr) : "r"(addr));
}

注意:您需要 Compute Capability 2.0 或更高版本的 GPU 才能进行预取。相应地传递正确的编译标志 -arch=sm_20

关于cuda - cuda中的预取(通过C代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13265993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com