gpt4 book ai didi

c++ - CUDA:全局内存访问地址

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:11:29 24 4
gpt4 key购买 nike

是否可以在运行时查看线程访问的全局内存地址?

我知道这会产生很多开销,但我想看看正在访问哪些元素。我认为这将帮助我理解合并机制是如何实现的。

谢谢。

最佳答案

CUDA 线程代码主要遵循 C 和 C++ 语法模式。所以你可以很容易地在内核代码中打印出一个指针的数值:

printf("pval = %p\n", my_pointer);

如果您想在 CUDA 内核中跨线程执行此操作,您可以执行以下操作:

__global__ void my_kernel(int *data){
int idx = threadIdx.x+blockDim.x*blockIdx.x;
printf("thread: %d, pointer: %p, value: %d\n", idx, &(data[idx]), data[idx]);
}

或类似的。显然,如果您使用大量线程,这将创建大量输出,请注意内核 printf 使用大小有限的缓冲区。

关于c++ - CUDA:全局内存访问地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40681449/

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