gpt4 book ai didi

CUDA 4.1 printf() 错误

转载 作者:行者123 更新时间:2023-12-04 06:07:14 26 4
gpt4 key购买 nike

即使我有 fermi 卡(gtx 560),我在 VS2010 上也会收到此错误:

error : calling a host function("printf") from a __device__/__global__ function("kernel") is not allowed

代码:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

#include <stdio.h>

__global__ void kernel()
{
printf("hello");
}

int main()
{
kernel<<<1, 1>>>();
return 0;
}

我在这里错过了什么吗?

最佳答案

您需要确保为正确的架构进行编译。只有 Fermi 和 Kepler 卡(因此计算能力为 2.0、2.1、3.0 和 3.5 设备)支持 printf在内核中。如果你像这样编译你的代码:

nvcc -arch=sm_21 [other options] .....

代码应该正确构建。默认架构是计算 1.0,这就是您收到错误的原因。如果您使用 Visual Studio,则应该有一个项目选项来选择目标架构,尽管我无法准确告诉您在哪里可以找到它,因为我没有将它与 CUDA 一起使用。

关于CUDA 4.1 printf() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749652/

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