nvidia相关内容
我正在研究 cuda 5.5,但我没有任何 Nvidia GPU.在旧版本的 nvcc 中有一个标志 --multicore 来为 CPU 编译 cuda 代码.在新版本的nvcc中,有什么选项??我在 Linux 上工作. 解决方案 CUDA 工具包,因为至少 CUDA 4.0 不支持在没有 GPU 的情况下运行 cuda 代码的能力. 如果你只是想编译代码,参考这个问题.
..
有人开始使用 CUDA5 SDK 了吗? 我有一个旧项目使用了一些 cutil 函数,但它们已被新项目遗弃. 解决方案是大多数函数可以从 cutil*/cut* 转换为来自 helper*.h 标头的类似命名的 sdk* 等价物... 例如:cutStartTimer 变为 sdkCreateTimer就这么简单…… 解决方案 有人开始使用 CUDA5 SDK 了吗?
..
我想在没有 CPU-RAM 的情况下直接将数据从 GPU0-DDR 复制到 GPU1-DDR. 如第 15 页所述:http://people.maths.ox.ac.uk/gilesm/cuda/MultiGPU_Programming.pdf 点对点 Memcpy 从 GPU A 上的指针直接复制到 GPU B 上的指针 使用 UVA,只需使用 cudaMemcpy(..., cu
..
在 CUDA 中使用常量的最佳方式是什么? 一种方法是在常量内存中定义常量,例如: //CUDA 全局常量__constant__ int M;诠释主要(无效){...cudaMemcpyToSymbol("M", &M, sizeof(M));...} 另一种方法是使用 C 预处理器: #define M = ... 我认为使用 C 预处理器定义常量要快得多.那么在 CUDA 设备
..
我读到可以使用内核启动来同步不同的块,即,如果我希望所有块在进行操作 2 之前完成操作 1,我应该将操作 1 放在一个内核中,将操作 2 放在另一个内核中.这样,我可以实现块之间的全局同步.但是,cuda c 编程指南提到内核调用是异步的,即.CPU 不会等待第一个内核调用完成,因此 CPU 也可以在第一个内核完成之前调用第二个内核.但是,如果这是真的,那么我们就不能使用内核启动来同步块.请让我知
..
CUDA 文档没有具体说明多少个 CUDA 进程可以共享一个 GPU.例如,如果我在系统中只安装了一张 GPU 卡的情况下,由同一用户启动多个 CUDA 程序,效果如何?能保证执行的正确性吗?在这种情况下,GPU 是如何调度任务的? 解决方案 来自独立主机进程的 CUDA 活动通常会创建独立的 CUDA contexts,每个进程一个.因此,从不同主机进程启动的 CUDA 活动将在同一设备
..
我在这里有一个在 MATLAB R2013b 中执行的小脚本: 全部清除;n = 2000;次 = 50;我 = 0;tCPU = 抽动;显示'CPU::'A = 兰德(n,n);B = 兰德(n,n);显示'::去'对于 i = 0: 次CPU = A * B;结尾tCPU = toc(tCPU);tGPU = 抽动;显示'GPU ::'A = gpuArray(A);B = gpuArray
..
我正在尝试通过命令提示符在 Windows 7 上编译一个 cuda 测试程序,我是这个命令: nvcc test.cu 但我得到的只是这个错误: nvcc 致命:在 PATH 中找不到编译器“cl.exe" 什么可能导致这个错误? 解决方案 您需要将包含“cl.exe"文件的文件夹添加到您的路径环境变量中.例如: C:\Program Files\Microsoft Visua
..
CUDA 内核、流式多处理器和块和线程的 CUDA 模型之间有什么关系? 什么被映射到什么,什么被并行化以及如何?还有什么更高效,最大化块数还是线程数? 我目前的理解是每个多处理器有 8 个 cuda 内核.并且每个 cuda 核心将能够一次执行一个 cuda 块.并且该块中的所有线程都在该特定核心中串行执行. 这对吗? 解决方案 线程/块布局在CUDA 编程指南.特别是
..
我是 CUDA 范式的新手.我的问题是确定每个块的线程数和每个网格的块数.有一点艺术和试验的作用吗?我发现很多例子都为这些东西选择了看似任意的数字. 我正在考虑一个问题,我可以将任意大小的矩阵传递给乘法方法.因此,C 的每个元素(如 C = A * B)将由单个线程计算.在这种情况下,您将如何确定线程/块、块/网格? 解决方案 通常,您希望调整块/网格的大小以匹配您的数据并同时最大化
..
在多 GPU 计算机中,如何指定 CUDA 作业应在哪个 GPU 上运行? 例如,在安装 CUDA 时,我选择安装 NVIDIA_CUDA-_Samples 然后运行多个 nbody 模拟实例,但是它们都在一个 GPU 0 上运行;GPU 1 完全空闲(使用 watch -n 1 nvidia-dmi 进行监控).检查 CUDA_VISIBLE_DEVICES 使用 回显 $CU
..
我已在 Linux Ubuntu 16.04 上成功安装了 tensorflow (GPU),并进行了一些小改动以使其与新的 Ubuntu LTS 版本兼容. 但是,我认为(谁知道为什么)我的 GPU 满足了大于 3.5 的计算能力的最低要求.情况并非如此,因为我的 GeForce 820M 只有 2.1.有没有办法让 tensorflow GPU 版本与我的 GPU 一起工作? 我问
..
我正在寻找一个计算我的 cuda 设备核心数的函数.我知道每个微处理器都有特定的内核,而我的 cuda 设备有 2 个微处理器. 我进行了很多搜索以找到一个计算每个微处理器内核数的属性函数,但我找不到.我使用下面的代码,但我仍然需要核心数? cuda 7.0 程序语言 C 视觉工作室 2013 代码: void printDevProp(cudaDeviceProp dev
..
我刚刚设法在 Linux Ubuntu 10.04 下安装了我的 cuda SDK.我的显卡是 NVIDIA geForce GT 425M,我想用它来解决一些繁重的计算问题.我想知道的是:有没有办法使用一些无符号的 128 位 int var?当使用 gcc 在 CPU 上运行我的程序时,我使用的是 __uint128_t 类型,但是将它与 cuda 一起使用似乎不起作用.有什么办法可以在 cu
..
我正在测试新的 CUDA 8 和 Pascal Titan X GPU,并希望我的代码能够加快速度,但由于某种原因它最终变慢了.我在 Ubuntu 16.04 上. 这是可以重现结果的最少代码: CUDASample.cuh 类 CUDASample{上市:void AddOneToVector(std::vector &in);}; CUDASample.cu __g
..
我知道 nvidia-smi -l 1 会每隔一秒提供一次 GPU 使用率(类似于以下内容).但是,我希望能解释一下 Volatile GPU-Util 的真正含义.这是使用的 SM 数量超过总 SM 的数量,还是占用率,还是其他什么? +-----------------------------------------------------------------------------+|
..
我一直在阅读 CUDA 和 OpenCL 的编程指南,但我无法弄清楚银行冲突是什么.他们只是深入研究如何解决问题,而没有详细说明主题本身.有人可以帮我理解吗?如果帮助是在 CUDA/OpenCL 的上下文中,或者只是计算机科学中一般的银行冲突,我没有偏好. 解决方案 对于 nvidia(和 AMD)gpus,本地内存分为内存库.每个 bank 一次只能寻址一个数据集,因此如果 halfwa
..
当我转到 /usr/local/cuda/samples/1_Utilities/deviceQuery 并执行时 moose@pc09/usr/local/cuda/samples/1_Utilities/deviceQuery $ sudo make cleanrm -f deviceQuery deviceQuery.orm -rf ../../bin/x86_64/linux/relea
..
如何组织线程以供 GPU 执行? 解决方案 硬件 例如,如果一个 GPU 设备有 4 个多处理单元,并且每个单元可以运行 768 个线程:那么在给定时刻,真正并行运行的线程不会超过 4*768 个(如果您计划更多线程,它们将等待轮到他们). 软件 线程以块的形式组织.一个块由一个多处理单元执行.可以使用 1Dimension(x)、2Dimensions (x,y) 或
..
我已经使用CUDA几个星期了,但是我对blocks/warps/thread的分配有些疑问.我正在从教学的角度研究架构(大学项目),因此达到最佳性能不是我关心的问题. 首先,我想了解这些事实是否正确: 程序员编写内核,并在线程块网格中组织其执行. 每个块都分配给一个流式多处理器 (SM).一旦分配,它就不能迁移到另一个 SM. 每个 SM 将自己的块拆分为 Warps(当前
..