首页 文章
  • 54 votes
     answers
     views

    OpenCL / AMD:深度学习

    虽然"googl'ing"并做了一些研究,但我无法在AMD硬件上找到科学GPGPU计算和OpenCL的 any 严重/流行框架/ sdk . 我错过了哪些文献和/或软件? 特别是我对 deep learning 感兴趣 . 据我所知,deeplearning.net推荐使用NVIDIA硬件和CUDA框架 . 此外,我所知道的所有大型深度学习框架,如Caffe,Theano,To...
  • 19 votes
     answers
     views

    CUDA块和网格尺寸效率

    在cuda中处理动态大小的数据集的建议方法是什么? 这是“根据问题集设置块和网格大小”的情况还是值得将块尺寸指定为2的因子并且有一些内核逻辑来处理溢出? 我可以看到这对于块尺寸有多重要,但这对于网格尺寸有多重要?据我了解,实际的硬件限制在块级别停止(即分配给SM的块具有一定数量的SP,因此可以处理特定的warp大小) . 我已经仔细阅读了Kirk的“大规模并行编程器编程”,但它并没有触及这个领域 ...
  • 12 votes
     answers
     views

    CUDA块如何分为经线?

    如果我用一个网格开始我的内核,其网格的块有尺寸: dim3 block_dims(16,16); 网格块现在如何分成经线?这样一个块的前两行是形成一个warp,还是前两列,还是这个任意排序? 假设GPU计算能力为2.0 .
  • 119 votes
     answers
     views

    CUDA如何阻止/扭曲/线程映射到CUDA核心?

    我已经使用CUDA几个星期,但我对块/ warps /线程的分配有一些疑问 . I am studying the architecture from a didactic point of view (大学项目),所以达到最佳表现不是我的关注 . 首先,我想了解我是否直截了当地得到了这些事实: 程序员编写内核,并在线程块网格中组织执行 . 每个块都分配给一个流式多处理器(SM) . ...
  • 1 votes
     answers
     views

    CUDA中的动态编程:用于与子内核交换数据的全局内存分配

    我有以下代码: __global__ void interpolation(const double2* __restrict__ data, double2* __restrict__ result, const double* __restrict__ x, const double* __restrict__ y, const int N1, const int N2, int M) { ...
  • 0 votes
     answers
     views

    同时运行两个for循环,在两个GPU上具有相同数量的循环周期,涉及GPU和CPU任务

    我的代码中有两个 for 循环,运行相同数量的循环周期 . 这两个循环是独立的(每个循环适用于不同的输入数据) . 在一个循环中,有CPU功能和几个内核不同时运行 . 我可以在单独的GPU上运行这些迭代吗?
  • 41 votes
     answers
     views

    CUDA:总共有多少并发线程?

    我有一个GeForce GTX 580,我想说明可以(理想情况下)实际并行运行的线程总数,以便与2或4个多核CPU进行比较 . deviceQuery为我提供了以下可能的相关信息: CUDA Capability Major/Minor version number: 2.0 (16) Multiprocessors x (32) CUDA Cores/MP: 512 CUDA M...
  • 0 votes
     answers
     views

    从PCI设备复制到CUDA GPU内存

    是否有任何方法可以从PCI设备写入CUDA设备内存 . 该PCI设备以非常快的速率记录数据 . 因此,要获得最大性能,我希望将数据直接复制到GPU内存,以便通过主机传输进行处理 . 我在CUDA 5.0中读到了关于RDMA的内容 . 我如何使用RDMA / GPUDirect将数据从PCI传输到GPU内存 . 请帮我提供一些样品 . 我使用的操作系统是Windows 7 64位,CentOS 64...
  • 3 votes
     answers
     views

    如何使用GPU-CUDA代码中的GPU-DMA复制数据?

    使用CUDA SDK 5.5,我可以用来复制数据: 来自主机:cudaMemcpy();如果内存固定则使用GPU-DMA 来自主机: memcpy(); 或cudaMemcpy();如果内存未固定则使用CPU内核 来自gpu: for() { dst[i] = src[i]; } 或 memcpy(); 来使用GPU核心 来自gpu:使用GPU-DMA ??? 如何在 kern...
  • 6 votes
     answers
     views

    并发,4个CUDA应用程序竞争获取GPU资源

    如果有四个并发的CUDA应用程序在一个GPU中竞争资源,那么他们可以将工作卸载到图形卡上会发生什么? Cuda编程指南3.1提到某些方法是异步的: 内核启动 设备设备内存副本 64 KB或更少内存块的主机设备内存副本 由Async后缀的函数执行的内存复制 内存设置函数调用 同时它提到具有计算能力2.0的设备能够同时执行多个内核,只要内核属于同一个上下文 . 这种类型的并发只...
  • 1 votes
     answers
     views

    CUDA流和事件:澄清

    我正在阅读有关CUDA流和事件的内容 . 主持人在下面给出链接的帖子中说(我引用): 在CUDA中,保证按顺序完成提交给流的命令 . 如果应用程序向流提交网格启动和事件记录,则驱动程序将把网格启动,同步命令和事件记录推送到连接 . 在内核启动完成并清除同步令牌之前,前端不会处理事件记录命令 . The connection is blocked. 在计算能力3.5设备上,前端可以继续处理其他连...
  • 1 votes
     answers
     views

    我可以将现有的可分页内存转换为固定内存吗?

    每当我在CUDA中使用固定内存时,这个问题就会浮现在我的脑海中 . 我已经在这个主题上搜索了很多,但没有找到任何东西 . 基本上我们必须执行两次数据传输才能使用固定内存: Step1 - >可分页内存到固定内存 步骤2 - >将内存固定到设备内存 我也可以通过输入数据直接初始化固定内存并将其传输到GPU,这样可以节省Step1的传输时间 . 在我的情况下,我在GPU上处理非常大量的...
  • 2 votes
     answers
     views

    固定在CUDA和cudamemcpy()中的内存

    据我所知,当主机和设备之间的复制操作开始使用cudaMemcpy时,主机指针会自动固定 . 那么有一个单独的API cudAHostAlloc()用于分配固定主机内存的含义和必要性是什么?
  • 0 votes
     answers
     views

    无法在Opencv GPU中检测启用CUDA的设备

    你好, 我正在尝试使用CUDA的Opencv GPU . 我使用CMake用cuda 4.0编译opencv 2.3.1但是当我尝试使用函数cv :: gpu:getCudaEnabledDevice()时它返回零表示没有设备可用 . 虽然我的系统中有支持CUDA的gpu.Anybody请帮助我,我已经尝试了很多,在cmake中它显示没有找到CUDA_SDK_ROOT_CIR . 这里应该给出哪条...
  • 0 votes
     answers
     views

    有关GPGPU库的建议

    我正在编写一个应用程序,最终它可以很好地并行化: two dimensional float initialData and result arrays for each cell (a, b) in result array: for each cell (i, j) in initialData: result(a, b) += someComputation(init...
  • 124 votes
     answers
     views

    利用c#使用GPU [关闭]

    我试图从我的网格中获得更多的处理能力 . 我正在使用所有cpus / core,是否有可能在C#中使用GPU . 任何人都知道任何库或获得任何示例代码?
  • 43 votes
     answers
     views

    nvidia-smi易失性GPU利用率解释?

    我知道 nvidia-smi -l 1 将每秒钟提供一次GPU使用(类似于以下内容) . 但是,我很感激 Volatile GPU-Util 的真正含义 . 这是使用的SM数量超过总SM数,占用数量还是其他数量? +-----------------------------------------------------------------------------+ | NVIDIA-SMI ...
  • 2 votes
     answers
     views

    将CUDA安装为没有GPU的非root用户

    我有一个没有GPU的桌面,我想开发代码;并且某个集群上的机器有一个GPU,并安装了CUDA,但我真的无法“触摸”任何东西,我不会在其上运行IDE等 . 我没有任何机器上的root,我是个祸患 . 所以,基本上,我希望能够在我自己的无GPU台式机上编译和构建我的CUDA代码,然后只需将其复制并在另一台机器上进行测试 . 尽管存在两个阻碍因素,这可以做到这一点:我似乎记得需要存在GPU的CUDA安装程...
  • 0 votes
     answers
     views

    CUDA - 复制到对象数组中的数组

    我有一个CUDA应用程序,我正在处理一组对象;每个对象都有一个指向 std::pair<int, double> 数组的指针 . 我知道如何移动这个...... #include <cuda.h> #include <cuda_runtime.h> #include <iostream> using namespace std; class ...
  • -1 votes
     answers
     views

    如何在CUDA上使用OpenCV查找图像的雾度范围? [关闭]

    我试图找到图像的RGB值的最大值和最小值 . 我打算去的流程是: 加载图片 . 加载图像后,在要测试的单元格周围创建一个15x15的单元格 找到测试单元的最大RGB并将其存储在一个数组中 . 然后使用max RGB的值打印图像,据我所知,图像应该是暗图像 . RGB的最大值对应于图像的暗部分 这里的问题是我对图像处理的新手,opencv . 我不知道如何实现我上面提到的这些东...
  • 0 votes
     answers
     views

    对于大批量或使用此脚本,PyTorch培训是否存在错误?

    我正在关注Joshua L. Mitchell的this PyTorch tutorial . 本教程的最后一个结局是以下PyTorch训练脚本 . 一个元素,批量大小,我在脚本的第一行参数化,我在新启动的Jupyter笔记本中运行 . 有问题的关键参数是BIGGER_BATCH,最初设置为4: BIGGER_BATCH=4 import numpy as np import torch # T...
  • 1 votes
     answers
     views

    在Metal中手动设置1D纹理

    我正在尝试手动填充 1D texture 并将该纹理传递给计算着色器(这些是我想通过代码设置的2个像素,它们不代表任何图像) . 由于当前少量的Metal示例,我可以找到的所有示例都处理 2D textures ,它通过将加载的 UIImage 转换为原始字节数据来加载纹理,但创建一个虚拟 UIImage 对我来说就像是一个黑客 . 这是我开始的“天真”方式 - ... var manualTex...
  • 1 votes
     answers
     views

    无法在英特尔SDK for OpenCL中使用printf或调试器

    我正在使用英特尔SDK for OpenCL与英特尔高清显卡4000 GPU成功运行OpenCL程序 . 由于我还安装了Nvidia库,因此我确保链接到英特尔OpenCL库 . 但是,在内核中调用 printf() 会给OpenCL编译器错误 错误:OpenCL中不允许隐式声明函数'printf' 另外,我在Visual Studio 2012插件中启用了OpenCL内核调试,并将以下选项传递...
  • 0 votes
     answers
     views

    clCLetDeviceInfo和clGetPlatformInfo在OpenCL中失败,错误代码为-30(CL_INVALID_VALUE)

    我开始为使用OpenCL编写一个小“引擎” . 现在,我遇到了一个很奇怪的问题 . 当我调用 clGetDeviceInfo() 来查询特定设备的信息时,参数 param_name 的某些选项会返回错误代码-30(= CL_INVALID_VALUE) . 一个非常着名的选项是CL_DEVICE_EXTENSIONS,无论我使用什么sdk或平台,它都应该返回一串扩展名 . 我检查了每个边缘,并且还...
  • 4 votes
     answers
     views

    这个GPU视频转码项目是否可行?

    最近,一位想要使用GPU进行视频转码的人找到了我 . 他基本上希望我为他创建一个他可以出售或通过广告获得收入的应用程序 . 现在他基本上已经让我告诉我用5000美元的工资可以达到什么目的 . 现在,我是一名研究生,并因我的最终论文而获奖,该论文基于使用GPU的进化算法 . 所以我知道GPGPU的编程(这就是我们首先联系的原因),但我对视频压缩和转码等没有任何深入的了解 . 所以我有点亏本,我想要这...
  • 21 votes
     answers
     views

    CUDA如何为GPU分配设备ID?

    当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个 device ID . 默认情况下,CUDA内核在 device ID 0 上执行 . 您可以使用 cudaSetDevice(int device) 选择其他设备 . 假设我的机器中有两个GPU:GTX 480和GTX 670. How does CUDA decide which GPU is device ID 0 and ...
  • 1 votes
     answers
     views

    TensorFlow:不同GPU上的不同结果

    系统信息 What is the top-level directory of the model you are using :使用未经修改的预训练coco模型:faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017,faster_rcnn_resnet101_coco_11_06_2017,rfcn_resnet101_coco_11_...
  • 7 votes
     answers
     views

    2-GPU卡上的PCI-e通道分配?

    cudaMemcpy 操作的数据速率受到分配用于从CPU运行到GPU的PCI-e 3.0(或2.0)通道数量的严重影响 . 我很好奇PCI-e通道如何在包含两个GPU的Nvidia设备上使用 . Nvidia有一些产品在一个PCI-e设备上有两个GPU . 例如: GTX 590包含两个Fermi GF110 GPU GTX 690包含两个Kepler GK104 GPU 与许多较新的...
  • 4 votes
     answers
     views

    改进CUDA中的异步执行

    我目前正在编写一个程序,使用CUDA API在GPU上执行大型模拟 . 为了加速性能,我尝试同时运行我的内核,然后再次将结果异步复制到主机内存中 . 代码看起来大致如下: #define NSTREAMS 8 #define BLOCKDIMX 16 #define BLOCKDIMY 16 void domainUpdate(float* domain_cpu, // po...
  • 0 votes
     answers
     views

    如何设置专用GPU以对CUDA内核进行基准测试?

    我想在linux下使用第二个GPU设备作为专用设备,以便对内核进行基准测试 . 我正在测试的内核是没有减少的SIMD计算内核而且没有X-Server连接到GPU,该设备是GeForge GTX-480所以我认为计算能力是2.因此,高级功能作为动态并行和其他人,都是残疾人 . 使用nvidia-smi实用程序可以使用各种模式来设置GPU "Default" means multi...

热门问题