cuda相关内容

CUDA 11内核不运行

这里是一个demo.cu目标是从GPU设备打印f: #include "cuda_runtime.h" #include "device_launch_parameters.h" #include __global__ void hello_cuda() { printf("hello from GPU "); } int main() { ..
发布时间:2022-02-25 23:48:12 其他开发

CUDA设备端代码的Sprint-Like函数?

我在网上找不到任何东西。由于可以在__device__函数中使用printf,我想知道是否有sprintfLIKE函数,因为printf使用的是要在stdout中显示的sprintf结果。 推荐答案 否没有任何内置到CUDA中的功能。 在CUDA中,设备printf的实现是一个特例,使用的机制与C库printf不同。 ..
发布时间:2022-02-25 23:44:55 其他开发

Pycuda块和格网,用于处理大数据

我需要帮助才能知道我的块和网格的大小。 我正在构建一个python应用程序来执行基于Scipy的公制计算:欧几里德距离、曼哈顿、皮尔逊、余弦、加入其他。 项目为PycudaDistances。 它似乎可以很好地处理小数组。当我执行更详尽的测试时,不幸的是它不起作用。我下载了电影镜头集(http://www.grouplens.org/node/73)。 使用Movielens10 ..
发布时间:2022-02-23 18:10:54 Python

如何在 CUDA 中使用多态性

我正在将一些物理模拟代码从 C++ 移植到 CUDA. 基本算法可以理解为:对向量的每个元素应用一个算子.在伪代码中,模拟可能包括以下内核调用: apply(算子 o, 向量 v){...} 例如: apply(add_three_operator, some_vector) 将为向量中的每个元素添加三个. 在我的 C++ 代码中,我有一个抽象基类 Operator,具有许多不 ..
发布时间:2022-01-24 16:45:48 其他开发

如何在 CUDA 应用程序中正确应用线程同步?

通常我在我的应用程序中偶尔使用线程同步,因为我并不经常需要这个功能.我不是真正的高级 C/C++ 程序员,但我也不是初学者.与 CPU 的强大功能相比,我开始学习 CUDA C,因为现在 GPU 的强大功能让我兴奋不已,我意识到 CUDA 编程主要是关于并行线程执行,有时需要适当的线程同步.事实上,我什至还不知道如何在 C 或 C++ 中应用线程同步.我最后一次使用同步是大约 2 年前,当时我正在 ..
发布时间:2022-01-22 20:47:02 其他开发

CUDA - 将设备数据复制到主机?

我有设备变量,在这个变量中,我在设备中分配并填充了一个数组,但是我在将数据获取到主机时遇到了问题.cudaMemcpy() 返回 cudaErrorInvalidValue 错误.我该怎么做? PS:代码只是示例,我知道,在这种特殊情况下,我可以使用 cudaMalloc 因为我知道数组的大小,但在我的真实代码中,它计算的大小设备中的数组,它需要立即分配内存. PS2:我发现了一个类似 ..
发布时间:2022-01-20 18:32:24 其他开发

将数据从设备复制到主机时出现无效参数错误

我在将数据从我的设备复制回主机时遇到问题.我的数据排列在一个结构中: typedef struct Array2D {双* arr;整数行;整数列;} Array2D; arr 是一个“平面"数组.rows 和 cols 描述维度. 下面的代码显示了我如何尝试将数据复制回主机: h_output = (Array2D*) malloc(sizeof(Array2D));cudaMemc ..
发布时间:2022-01-20 18:24:17 其他开发

CUDA 设备到主机复制非常慢

我正在运行 Windows 7 64 位、cuda 4.2、Visual Studio 2010. 首先,我在 cuda 上运行一些代码,然后将数据下载回主机.然后进行一些处理并移回设备.然后我做了以下从设备到主机的复制,它运行得非常快,比如 1 毫秒. clock_t 开始,结束;计数=1000000;推力::host_vector h_a(计数);推力::device_vec ..
发布时间:2022-01-20 18:18:42 C/C++开发

CUDA 合并访问全局内存

我已阅读 CUDA 编程指南,但我错过了一件事.假设我在全局内存中有 32 位 int 数组,我想通过合并访问将它复制到共享内存.全局数组的索引从 0 到 1024,假设我有 4 个块,每个块有 256 个线程. __shared__ int sData[256]; 何时执行合并访问? 1. sData[threadIdx.x] = gData[threadIdx.x * blockI ..
发布时间:2022-01-20 18:11:53 其他开发

示例 deviceQuery cuda 程序

我有一台配置了 NVIDIA GeForce1080 GTX 和 CentOS 7 作为操作系统的 Intel Xeon 机器.我已经安装了 NVIDIA-driver 410.93 和 cuda-toolkit 10.0.编译 cuda-samples 后,我尝试运行 ./deviceQuery.但它会像这样抛出 ./deviceQuery 开始...CUDA 设备查询(运行时 API)版本( ..
发布时间:2022-01-13 21:56:27 其他开发

遇到 cuda 无法纠正的 ECC 错误

我的环境是 Windows 7 x64 Matlab 2012a x64 Cuda SDK 4.2 特斯拉 C2050 GPU 我无法弄清楚为什么我的 GPU 因“遇到无法纠正的 ECC 错误"而崩溃.仅当我使用 512 个线程或更多线程时才会出现此错误.我无法发布内核,但我会尝试描述它的作用. 一般来说,内核采用多个参数并产生由线程大小 M 和另一个数字 N 定义的 2 ..
发布时间:2022-01-12 11:33:52 其他开发

使用 CUDA 和 C++11 时出错

我正在使用 CUDA 4.1 和 GCC 4.5 ...(终于!CUDA 支持 GCC 4.5,但仍在等待 GCC 4.6).无论如何,是否可以在 CUDA 4.1 中使用 C++11? 我尝试过: --compiler-options "-std=c++0x" 到 nvcc,它会向我抛出一堆错误: /usr/include/c++/4.5/exception_ptr.h(100):错 ..
发布时间:2022-01-10 16:18:38 C/C++开发

nvcc for linux 使用的默认主机编译器

我在带有 GTX 570(计算能力 2.0)的 Ubuntu 10.10 上使用 CUDA 4.0,并带有 GCC 编译器套件.据我了解,在编译过程中,CUDA编译器驱动程序nvcc将.cu文件拆分为主机代码和设备代码,并调用主机编译器编译主机代码和分别编译设备代码.最后,它将生成的主机目标代码和设备 PTX 代码合并为一个可执行文件. 对于 Linux 系统,用于编译主机代码的默认编译器是 ..
发布时间:2022-01-10 16:18:31 其他开发

Kepler 中的二级缓存

L2 缓存如何在具有 Kepler 架构的 GPU 中根据引用的局部性工作?例如,如果一个线程访问全局内存中的一个地址,假设该地址的值不在二级缓存中,那么该值是如何被缓存的?是暂时的吗?或者该地址的其他附近值是否也被带到 L2 缓存(空间)? 下图来自 NVIDIA 白皮书. 解决方案 在计算能力 2.0 及更高版本中引入了统一二级缓存,并继续在 Kepler 架构上得到支持.使用的 ..
发布时间:2022-01-10 16:17:55 其他开发

从命令行运行 nvcc 时出现问题

我需要从命令行使用 nvcc 编译一个 cuda .cu 文件.该文件是“vectorAdd_kernel.cu",包含以下代码: extern "C" __global__ void VecAdd_kernel(const float* A, const float* B, float* C, int N){int i = blockDim.x * blockIdx.x + threadIdx ..
发布时间:2022-01-10 16:17:47 C/C++开发

从 cmake 测试是否存在支持 cuda 的 GPU 的最简单方法是什么?

我们有一些安装了 cuda 库的夜间构建机器,但它们确实没有安装支持 cuda 的 GPU.这些机器能够构建支持 cuda 的程序,但不能运行这些程序. 在我们的自动化夜间构建过程中,我们的 cmake 脚本使用 cmake 命令 find_package(CUDA) 判断是否安装了cuda软件.这会在安装了 cuda 软件的平台上设置 cmake 变量 CUDA_FOUND.这 ..
发布时间:2022-01-10 16:17:38 其他开发

双打定义错误的CUDA atomicAdd

在以前版本的 CUDA 中,没有为双精度实现 atomicAdd,因此通常像 这里.使用新的 CUDA 8 RC,当我尝试编译包含此类功能的代码时遇到了麻烦.我猜这是因为在 Pascal 和 Compute Capability 6.0 中添加了 atomicAdd 的本机双版本,但不知何故,以前的 Compute Capabilities 并没有正确地忽略它. 下面的代码在以前的 CUDA ..
发布时间:2022-01-10 16:17:33 其他开发