纹理不是模板
texture is not a template
我在 Microsoft Visual Studio 2019 中使用 CUDA 来编写此代码:
#include <cuda_runtime.h>
#include <cuda_runtime_api.h>
#include <cuda.h>
#include <device_launch_parameters.h>
#include <fstream>
#include <cstddef>
texture<float, 2, cudaReadModeElementType> texRef;
它给我 texture is not a template
错误,我似乎对此无能为力。我尝试过的所有其他与 CUDA 相关的代码似乎都可以编译。该文件确实是 .cu
文件,而不是 .cpp
文件。带纹理的 CUDA 样本对我来说编译正确。
这可能是什么问题?
(虽然有相同的问题,但他们都建议将 .cpp
文件更改为 .cu
文件应该会有所帮助,但我的情况似乎并非如此。)
这是因为您的项目正在尝试使用 Cl 而不是 nvcc 编译您的文件。
在你的.vcxproj项目文件中替换
<ClCompile Include="myfile.cu" />`
来自
<CudaCompile Include="myfile.cu" />
如果你更新了cuda,你还需要更新你的ExtensionSettings
项目文件:
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 11.3.props" />
</ImportGroup>
我补充说纹理参考是 deprecated in cuda 11.3 and instead you should use texture objects。
我在 Microsoft Visual Studio 2019 中使用 CUDA 来编写此代码:
#include <cuda_runtime.h>
#include <cuda_runtime_api.h>
#include <cuda.h>
#include <device_launch_parameters.h>
#include <fstream>
#include <cstddef>
texture<float, 2, cudaReadModeElementType> texRef;
它给我 texture is not a template
错误,我似乎对此无能为力。我尝试过的所有其他与 CUDA 相关的代码似乎都可以编译。该文件确实是 .cu
文件,而不是 .cpp
文件。带纹理的 CUDA 样本对我来说编译正确。
这可能是什么问题?
(虽然有相同的问题,但他们都建议将 .cpp
文件更改为 .cu
文件应该会有所帮助,但我的情况似乎并非如此。)
这是因为您的项目正在尝试使用 Cl 而不是 nvcc 编译您的文件。
在你的.vcxproj项目文件中替换
<ClCompile Include="myfile.cu" />`
来自
<CudaCompile Include="myfile.cu" />
如果你更新了cuda,你还需要更新你的ExtensionSettings
项目文件:
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 11.3.props" />
</ImportGroup>
我补充说纹理参考是 deprecated in cuda 11.3 and instead you should use texture objects。