gpt4 book ai didi

visual-studio-2010 - 解决推力/CUDA警告 "Cannot tell what pointer points to..."

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

我正在尝试使用Thrust/CUDA 4.0构建一个琐碎的应用程序,并收到许多警告“警告:假设全局内存空间不足,则无法告诉所指向的指针”

有没有其他人看到过这个,我该如何禁用它们或修复我的代码?

谢谢,

阿德

这是我的代码。

你好

class DECLSPECIFIER Hello   
{
private:
thrust::device_vector<unsigned long> m_device_data;

public:
Hello(const thrust::host_vector<unsigned long>& data);
unsigned long Sum();
unsigned long Max();
};

你好
#include "Hello.h"

Hello::Hello(const thrust::host_vector<unsigned long>& data)
{
m_device_data = data;
}

unsigned long Hello::Sum()
{
return thrust::reduce(m_device_data.cbegin(), m_device_data.cend(), 0, thrust::plus<unsigned long>());
}

unsigned long Hello::Max()
{
return *thrust::max_element(m_device_data.cbegin(), m_device_data.cend(), thrust::less<unsigned long>());
}

输出
1>  Compiling CUDA source file Hello.cu...
1>
1> C:\SrcHg\blog\HelloWorld\HelloWorldCuda>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2008 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir "Debug" -maxrregcount=32 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debug\Hello.cu.obj" "C:\SrcHg\blog\HelloWorld\HelloWorldCuda\Hello.cu"
1> Hello.cu
1> tmpxft_00001fac_00000000-0_Hello.cudafe1.gpu
1> tmpxft_00001fac_00000000-5_Hello.cudafe2.gpu
1> Hello.cu
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/internal_functional.h(197): warning : Cannot tell what pointer points to, assuming global memory space
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/internal_functional.h(197): warning : Cannot tell what pointer points to, assuming global memory space
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include\thrust/detail/internal_functional.h(197): warning : Cannot tell what pointer points to, assuming global memory space

有很多。

最佳答案

费米使用共享和全局内存空间的统一寻址方式,而费米之前的消息则不使用。

对于费米以前的情况,当您获得地址时,您不知道该地址是共享的还是全局的。编译器试图弄清楚它,但有时不能。发生这种情况时,会弹出消息-在99.999%的情况下,“假定全局”是正确的,因为当您想要一个指向共享内存的指针时,通常会显式地获取一个共享变量的地址,并且编译器可以识别出该地址。

对于Fermi卡,可以在运行时(基于地址)推论“共享或全局”,并且编译器无需进行任何假设。

建议:忽略那些警告。

关于visual-studio-2010 - 解决推力/CUDA警告 "Cannot tell what pointer points to...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5212875/

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