gpt4 book ai didi

c - CUDA 中的托管变量使用

转载 作者:行者123 更新时间:2023-11-30 17:25:55 24 4
gpt4 key购买 nike

我尝试在 CUDA 程序中使用托管变量,但在尝试在主机端设置托管变量时遇到段错误。我所做的与此处文档中提到的完全相同(http://docs.nvidia.com/cuda/cuda-c-programming-guide/#managed-qualifier)。为什么会发生这种情况?

#include <cuda.h>

#define THREADS_PER_BLOCK 32
#define BLOCKS_PER_SM 1

#define MB(x) ((x) << 20)

__device__ __managed__ int val = 0;

__global__ void test_kernel(char *src)
{
src[0] = val;
}

int main(int argc, char *argv[])
{
char *data;
int size = 2; // 2 MB

val = 100; //<--- seg fault gone if I comment this line

cudaMallocManaged(&data, MB(size));
test_kernel<<<BLOCKS_PER_SM, THREADS_PER_BLOCK>>>(data);
cudaDeviceSynchronize();
cudaFree(data);

return 0;
}

最佳答案

抱歉打扰了大家。对我来说这是一个很大的失败。我的设备是 3.0 功能设备,但我正在为不支持的compute_50 进行编译。感谢您的建议!

关于c - CUDA 中的托管变量使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947734/

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