CUDA是Nvidia GPU(图形处理单元)的并行计算平台和编程模型。 CUDA通过各种编程语言,库和API为Nvidia GPU提供了一个接口。
(Windows) 未找到 CUDA 运行时,使用 CUDA_HOME='C:\Program Files\NVIDIA GPUComputing Toolkit\CUDA 11.8'
我正在尝试使用 conda 设置高斯泼溅,但是在安装子模块 - diff-gaussian-rasterization 和 simple-knn 时,它报告错误“没有 CUDA 运行时...
安装 Cygwin 后,我进入了要编译的目录并点击“make”。这是我得到的错误: nvcc:致命错误:不支持的主机编译器“x86_amd64” 我现在能做什么?
我正在尝试使用 GPUocelot 在 X86 cpu 上生成 GPGPU 基准测试的痕迹。因此,我使用 -locelot 和 -locelotTrace 链接器标志编译基准测试。我的基准编译并
在以下代码片段中,nvcc (CUDA 12.5)“有帮助”地重新排序了时钟语句。这会导致时序偏差 26 倍。 #包括 #包括 __device__ int
我对这个问题也有类似的需求。唯一的区别是,我需要在 cuArray 上执行此操作(因为我想使用 cudaAddressModeWrap),而不是普通的设备存储。 所以,我尝试了这个: $ ...
我已经在本地环境安装了软件包: pip3 安装 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 根据 https://pytor 的建议...
是否有可能克服thrust::zip_iterator中迭代器的最大数量?
我在工作中使用 Thrust 来完成一些任务,并发现在构造 zip_iterator 时似乎存在最大数量的迭代器。 例如 #包括 我在工作中使用 Thrust 来完成一些任务,并发现在构建 zip_iterator 时似乎存在最大数量的迭代器。 例如 #include <thrust/iterator/zip_iterator.h> #include <thrust/device_vector.h> int main() { thrust::device_vector<int> A(10),B(10),C(10); auto zitor = thrust::make_zip_iterator(A.begin(),A.begin(), B.begin(),B.begin(), B.begin(),B.begin(), B.begin(),B.begin(), C.begin(),C.begin()); } 这段代码编译成功。但是如果我在函数参数中再添加一个迭代器,就会出现错误: multizip.cu(8): error: no instance of overloaded function "thrust::make_zip_iterator" matches the argument list argument types are: (thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>) 1 error detected in the compilation of "multizip.cu". 它最多接受十个迭代器,还是我误解了什么?如果是这样,有什么解决办法吗? using Itor = thrust::device_vector<int>::iterator; using Zitor = thrust::zip_iterator<thrust::tuple< Itor,Itor,Itor,Itor,Itor,Itor, Itor,Itor,Itor,Itor,Itor>>; 这段代码也不起作用,除非我删除一个Itor,错误信息是: multizip.cu(17): error: too many arguments for class template "thrust::tuple" 所以我相信thrust::tuple中的迭代器数量确实有最大限制为10。可以克服这个限制吗? 您遇到的最接近的问题是,直到最近,Thrust 的模板限制为 thrust::zip_iterator 中的 10 个项目(迭代器)。修复/解决该问题有以下三种选项: 最近(似乎从 CUDA 12.3 到 CUDA 12.4),Thrust zip_iterator 设计已更改,允许 超过 10 个迭代器 构建 zip_iterator。 因此,一种选择是将您的 CUDA 工具包版本更新到 12.4.1 或更高版本。 另一个相关选项是将更新版本的 CCCL* 与您当前的 CUDA 工具包结合使用。 CCCL 的最新版本为此提供了“定义的兼容性路径”。 我不会在这里给出完整的秘诀,但简而言之,假设您位于定义的兼容性路径内,您将克隆计算机上当前的 CCCL 存储库,然后使用 -I* 将您的 CUDA 编译器指向该存储库*。 Thrust 是一个仅包含模板/标头的库,因此不需要单独的编译步骤或任何其他安装步骤。 根据您的需求,保持在旧 Thrust 版本的 10 个迭代器限制之内,您可以创建 zip_iterator 的 zip_iterators。 这里就是一个例子。 这可用于获得超过 10 个迭代器,尽管是嵌套排列。 *:CUDA C++ Core L库于 2023 年引入,由于它们的交互/重叠,将 Thrust、CUB 和 libcu++/libcudacxx 包含在单个存储库中。 原始的 Thrust 存储库 停止更新,并且 不 包含现代化的 zip_iterator。**:请勿使用 -isystem,因为这会获得比 CUDA 工具包打包的 CCCL 标头更低的优先级。
我想使用 CUB::DeviceSelect 返回数组的选定部分和未选定部分。我唯一的解决方法是使用相反的 SelectOp 再次调用 CUB::DeviceSelect,但我不知道...
如何通过Nsight Compute查看我的张量核心占用率和利用率?
在我的cuda程序中,我使用了许多张量核心运算,例如m8n8k4,甚至使用cusparseSpMV。然而,当检查ncu报告时,它显示如下: 我的程序中没有活动张量。
是否有可能克服 `thrust::zip_iterator` 中迭代器的最大数量?
我在工作中使用 Thrust 来完成一些任务,并发现在构造 zip_iterator 时似乎存在最大数量的迭代器。 例如 #包括 我在工作中使用 Thrust 来完成一些任务,并发现在构造 zip_iterator 时似乎存在最大数量的迭代器。 例如 #include <thrust/iterator/zip_iterator.h> #include <thrust/device_vector.h> int main() { thrust::device_vector<int> A(10),B(10),C(10); auto zitor = thrust::make_zip_iterator(A.begin(),A.begin(), B.begin(),B.begin(), B.begin(),B.begin(), B.begin(),B.begin(), C.begin(),C.begin()); } 这段代码编译成功。但是如果我在初始化列表中再添加一个迭代器,就会出现错误: multizip.cu(8): error: no instance of overloaded function "thrust::make_zip_iterator" matches the argument list argument types are: (thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>) 1 error detected in the compilation of "multizip.cu". 它最多接受十个迭代器,还是我误解了什么?如果是这样,有什么解决方法吗? using Itor = thrust::device_vector<int>::iterator; using Zitor = thrust::zip_iterator<thrust::tuple< Itor,Itor,Itor,Itor,Itor,Itor, Itor,Itor,Itor,Itor,Itor>>; 这段代码也不起作用,除非我删除一个Itor,错误信息是: multizip.cu(17): error: too many arguments for class template "thrust::tuple" 所以我相信thrust::tuple中的迭代器数量确实有最大限制为10。我可以克服这个限制吗? 迭代器的数量在编译时由模板类型决定。这就是您收到最后一个错误的原因。我认为编译器对您创建的迭代器数量存在问题。这称为重载函数(因此第一个错误说“没有重载函数的实例”)。 我可能建议您首先尝试使用两个函数,将迭代器创建分成两个独特的函数,看看这是否是问题所在。 请参阅此处:https://forums.developer.nvidia.com/t/thrust-zip-iterator-with-任意-number-of-iterators/292942。 https://forums.developer.nvidia.com/t/combining-thrust-zip-iterator-transform-iterator-counting-iterator-for-modified-summed-area-table/56154.
CUDA 版本 X 抱怨不支持 gcc 版本 Y - 该怎么办?
问题是关于版本的特定组合,但具有更普遍的相关性。 我刚刚从 Kubuntu 12.04 升级到 14.04。现在,当我想编译 CUDA 代码(使用 CUDA 6.5)时,...
我想评估我的 GPU 的内存带宽。我编写了一个片段,将 int8_t 数组复制到另一个数组并测量时间。我设置了一个 64 个线程的块和一个 (/<...
我有一个简单多边形列表(假设有 600 个)(即没有自相交),至少有 4 个点,最多有 3000 个点 我想在 GPU 上计算所有这些多边形的凸包。 梅克...
有无数的文章和SO问题解释内核的网格和块大小应该设置为什么以及如何优化这些值,但这些文章似乎从未提到SM限制...
Face_recognition python:使用dlib给出代码:98,原因:无效的设备功能
我正在尝试在我的 GeForce GT 730 GPU、11.3 cudatoolkit、8.2.1 cuDNN 和 Windows 10 上的 475.14 驱动程序上运行face_recognition(我的设备计算能力为 3.5)。我收到错误消息 呃...
如何将 cmake 目标作为依赖项包含在 py_library 目标中? (小-cuda-nn)
我正在尝试用 bazel 包装tiny-cuda-nn 以作为其他项目的依赖项。这是一个 cmake 项目,但它具有 Python 的绑定。安装这个的传统方法是......
请原谅我的菜鸟行为。我们的研究小组最近购买了一台装有 2 个 NVIDIA Tesla 单元的服务器,我负责设置它。 服务器单元运行 Rocks 6.0。 所以我安装...
来自 Windows PowerShell 的 CUDA nvcc 编译器
我正在尝试在 Windows PowerShell1 上从 GitHub/cuda_samples 编译一个简单的示例: $ nvcc --版本 nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2024 NVIDIA 公司 建立在
使用 nvcc CUDA 编译器时出现分段错误的可能原因有哪些?
我有一个 CUDA 类,我们称之为 A,在头文件中定义。 我编写了一个测试内核,它创建了 A 类的实例,它可以正常编译并产生预期的结果。 另外...
当我想编译支持动态并行的 MPI+CUDA 混合程序时,遇到了一个编译问题。 dyn_pal.cu 的源代码 #包括 #包括 #德...