nvidia相关内容

示例 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 其他开发

Kepler 中的二级缓存

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

双打定义错误的CUDA atomicAdd

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

CUDA:每个多处理器的线程数和每个块的线程数的区别是什么?

我们有一个安装了两个 Nvidia Quadro FX 5800 卡的工作站.运行 deviceQuery CUDA 示例显示每个多处理器 (SM) 的最大线程数为 1024,而每个块的最大线程数为 512. 鉴于每个 SM 一次只能执行一个块,为什么最大线程/处理器是最大线程/块的两倍?我们如何利用每个 SM 的其他 512 个线程? 设备 1:“Quadro FX 5800"CUDA ..
发布时间:2022-01-10 16:16:39 其他开发

CUDA 上纹理内存中的结构

我有一个包含两个元素结构的数组,我将其发送到全局内存中的 CUDA,然后从全局内存中读取值. 当我阅读一些书籍和帖子时,并且我只是从结构中读取值,我认为如果可以将我的数组存储在纹理内存中,我会很有趣.我在内核之外使用了以下代码: 纹理纹理节点; 以及main()中的以下几行 gpuErrchk(cudaMemcpy(tree_d, tree, n * sizeof(node), cud ..
发布时间:2022-01-10 16:09:43 其他开发

cudaGetCacheConfig 需要 0.5 秒 - 如何/为什么?

我在带有 GTX Titan X (GM 200) 的基于 Xeon 的系统上使用 CUDA 8.0.它工作得很好,但是 - 与我在家中较弱的 GTX 600 系列卡相比,我的开销很长.具体来说,当我发现对 cudaGetCacheConfig() 的调用始终使 CUDA 运行时 API 花费了令人难以置信的时间:530-560 毫秒,或超过 0.5 秒.这一点,而其他电话并不需要那么多.例如,c ..
发布时间:2022-01-10 16:09:35 其他开发

CUDA:二维网格中的线程 ID 分配

假设我有一个带有 2D 网格的内核调用,如下所示: dim3 dimGrid(x, y);//实际值是什么并不重要dim3 dimBlock(blockSize, blockSize);我的内核>>(); 现在我读到多维网格只是为了简化编程——底层硬件只会使用一维线性缓存内存(除非你使用纹理内存,但这与这里无关). 我的问题是:在 warp 调度期间,线程将按什么 ..
发布时间:2022-01-10 16:08:09 C/C++开发

Cuda 编译器不适用于 GCC 4.5 +

我是 Cuda 的新手,我正在尝试编译这个简单的 test_1.cu 文件: #include __global__ 无效内核(无效){}int 主要(无效){内核>>();printf("你好,世界!\n");返回0;} 使用这个:nvcc test_1.cu 我得到的输出是: 在/usr/local/cuda/bin/../include/cuda_ ..
发布时间:2022-01-10 16:06:29 服务器开发

尝试同时使用板载 iGPU 和 Nvidia 独立卡时,CUDA 失败.我如何同时使用离散的 nvidia 和集成(板载)intel gpu?

我最近在让我的电脑 (ivybridge) 使用板载 gpu (intel igpu HD4000) 进行正常屏幕显示使用时遇到了一些麻烦,而我在离散的 Nvidia GT 640 上运行我的 CUDA 程序进行计算我在我的机器上.问题是在 iGPU 显示下,CUDA 将无法识别 nvidia 卡,并且根本无法加载 nvidia 驱动程序. 请记住,在为显示设备使用 nvidia windo ..
发布时间:2022-01-10 16:04:01 其他开发

CUDA 内核计时策略:优点和缺点?

在为 CUDA 内核计时时,以下内容不起作用,因为内核在执行时不会阻塞 CPU 程序执行: 开始计时器内核>>();结束计时器 我已经看到了三种(成功地)为 CUDA 内核计时的基本方法: (1) 两个 CUDA eventRecords. 浮动响应时间;//结果将以毫秒为单位cudaEvent_t 开始;cudaEventCreate(&start);cudaEvent ..
发布时间:2022-01-10 16:03:01 其他开发

如何使用软件实现在没有 GPU 的情况下运行 CUDA?

我的笔记本电脑没有 nVidia 显卡,我想在 CUDA 上工作.该网站说 CUDA 也可以在非 cuda 硬件上以仿真模式使用.但是当我尝试安装从他们的网站下载的 CUDA 驱动程序时,它给出了一个错误“nvidia 安装程序找不到与您当前硬件兼容的任何驱动程序.安装程序现在将退出". 当我尝试在 Visual Studio 2008 中从 SDK 运行示例代码时,我收到一个错误,即找不到 ..
发布时间:2022-01-10 15:54:51 其他开发

CUDA - 通过 PCI-E 传输的速度有多慢?

如果我将单个字节从 CUDA 内核传输到 PCI-E 到主机(零拷贝内存),与传输 200 兆字节的数据相比,它的速度要慢多少? 我想知道,因为我知道通过 PCI-E 传输对于 CUDA 内核来说很慢,所以我想知道的是:如果我只传输一个字节或大量数据,它会改变什么吗?或者可能由于内存传输是“批量"执行的,传输单个字节相对于传输 200 MB 而言非常昂贵且无用? 解决方案 希望这张图 ..
发布时间:2022-01-10 15:54:11 其他开发

不支持外部调用 - CUDA

目标是调用另一个文件中可用的设备函数,当我编译 global 内核时,它显示以下错误 *External calls are not supported (found non-inlined call to _Z6GoldenSectionCUDA)*. 有问题的代码(不是完整的代码,而是出现问题的地方),猫范数.h # ifndef NORM_H_# 定义 NORM_H_# 包括 ..
发布时间:2022-01-10 15:51:21 C/C++开发

CUDA 中的矩阵向​​量乘法:基准测试和表现

我正在用一些新的基准测试结果更新我的问题(我还重新表述了问题以更具体并更新了代码)... 我按照 CUDA C 编程指南 使用共享内存.先介绍一下我在 Jetson TK1(GPU:Tegra K1,计算能力 3.2)上所做的一些基准测试结果,并与 cuBLAS 进行比较: 在这里,我猜 cuBLAS 有一些魔力,因为它的执行似乎不受 A 的列数的影响,这反过来意味着沿着列存在某种并行 ..
发布时间:2022-01-10 15:49:42 其他开发

NVIDIA NVML 驱动程序/库版本不匹配

当我运行 nvidia-smi 时,我收到以下消息: 初始化 NVML 失败:驱动程序/库版本不匹配 一个小时前,我收到了同样的消息,并卸载了我的 cuda 库,我能够运行 nvidia-smi,得到以下结果: 在此之后,我从 NVIDIA 官方页面 然后简单地说: sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd ..
发布时间:2022-01-10 15:46:17 其他开发

如何使用 CUBLAS 对复数执行 Hadamard 乘积?

我需要使用 NVidia CUBLAS 计算复数的两个向量(Hadamard 乘积)的元素乘法.不幸的是,CUBLAS 中没有 HAD 操作.显然,您可以使用 SBMV 操作来做到这一点,但在 CUBLAS 中它没有实现复数.我不敢相信 CUBLAS 无法实现这一目标.对于复数,还有其他方法可以使用 CUBLAS 实现吗? 我无法编写自己的内核,我必须使用 CUBLAS(或其他标准 NVID ..
发布时间:2022-01-10 15:44:25 其他开发

按位置选择的CUDA GPU,但如何将默认设置为设备0以外的东西?

我最近在家里的机器上安装了第二个 GPU (Tesla K40),我的搜索表明第一个 PCI 插槽成为为 CUDA 作业选择的默认 GPU.一个很好的链接解释它可以在这里找到: 默认 GPU 分配 我原来的 GPU 是 TITAN X,也启用了 CUDA,但它确实最适合单精度计算,而 Tesla 更适合双精度.我对小组的问题是,是否有办法将我的默认 CUDA 编程设备设置为始终是第二个 ..
发布时间:2022-01-10 15:42:05 其他开发