其它硬件开发

了解GPU堆内存和驻留翘曲

驻留扭曲数量是否也受用户指定的堆大小限制? 例如,如果每个线程需要分配1 MB内存,并且堆被设置为总共32 MB(我假设cudaLimitMallocHeapSize用于堆使用每个内核启动而不是每个线程,是正确的吗?设备上只允许一个翘曲是真的吗? 解决方案 内核启动(或发出warp或者block)不受堆大小的限制。相反,如果不能满足发出的线程数(已达到每线程malloc,而不是相应的 ..
发布时间:2017-03-05 19:14:45 其它硬件开发

multi-gpu cuda:在一个设备上运行内核并在另一个设备上修改元素?

假设我在一台机器上有多个GPU,并且有一个内核在GPU0上运行。 使用CUDA 4.0的UVA和P2P功能,当内核在GPU0上运行时,我可以修改另一个设备上的阵列的内容,例如GPU1吗? CUDA 4.0 SDK中的simpleP2P示例不能演示这一点。 这只会演示: 对等备忘录 在GPU0上运行的内核,从GPU1缓冲区读取输入并将输出写入GPU0缓冲 在GPU ..
发布时间:2017-03-05 19:14:32 其它硬件开发

sm13上块的共享内存的实际数量是多少?

依赖于维基/ CUDA , 每个多处理器的最大驻留块数8 每个多处理器最大共享内存量16 KB 这是否意味着,如果我有很多运行的块,每个人只能有2 KB的共享内存?如果不是这样,并且每个块仍然具有16KB共享内存,那么当在signle MP上执行2个具有16KB存储器的块时,它被存储。 解决方案 在多处理器上运行的所有块必须共享所有资源(寄存器,共享内存等)。 如果你的 ..
发布时间:2017-03-05 19:13:54 其它硬件开发

CUDA + VS2010无VS2008

我想知道是否可以在不安装VS2008的情况下为CUDA编程。 目前我已经安装了VS2010我的主要开发机和我不想乱东西安装VS2008。此外,我不会使用它除了CUDA。 我已经做了一些搜索,它看起来应该可以避免这种依赖安装一个版本的Windows SDK,但是信息不清楚,我要确定我应该安装的SDK的版本以及这种解决方法的有效性。 您会建议什么? / p> 解决方案 cud ..
发布时间:2017-03-05 19:13:39 其它硬件开发

CUDA矩阵问题

我是一个新的CUDA,我有一个问题,我试图创建一个问题。问题是以下:我有一个方形矩阵(现在是5x5,但它会更大,如1k x 1k),这个矩阵填充随机数,然后我把这个矩阵到设备,它会做一些工作(现在它只应用一些阈值)。代码如下: #define N 3 #define MINTHRESHOLD 100 #define MAXTHRESHOLD 200 #define THREAD ..
发布时间:2017-03-05 19:12:21 其它硬件开发

无法调试CUDA:在抢占模式下不支持CUDA动态并行性调试

我有CUDA 5.5,最新的驱动程序,Nsight studio 3.1 for VC2010在Windows7 64bit。 目标机器有一个无头的Titan卡和另一个简单的NVidia卡,显示器连接到它。 我试图调试我的CUDA代码其中包括一些动态并行性。每当我在VC中单击“启动CUDA调试”,我从Nsight监视器中收到此错误:在抢占模式下不支持CUDA动态并行调试。 从我在此问题上发 ..
发布时间:2017-03-05 19:12:09 其它硬件开发

交叉编译到旧的CUDA工具包版本?

我在共享机器上,没有root。 我的代码因以下CUDA错误而死机 CUDA驱动程序版本不足CUDA运行时版本 我想为旧的工具包构建我的程序。我会假设这是可能的,因为商业应用程序分发支持早于最新的工具包(?)。 我玩过 arch 标志,但没有成功。 nvcc -arch = compute_13 fun.cu nvcc -arch = compute_20 fun ..
发布时间:2017-03-05 19:11:41 其它硬件开发

CUDA常量内存值不正确

我一直在阅读许多与常数记忆相关的SO问题,我仍然不明白为什么我的程序不工作。总体如下 Common.cuh __ constant__ int numElements; __global__ void kernelFunction(); Common.cu #include“Common.cuh” #include ..
发布时间:2017-03-05 19:11:27 其它硬件开发

cuda sdk示例bandwidthTest - 构建失败

我试图从cuda sdk构建带宽Test_vs2010但我得到的错误:1>链接:致命错误LNK1104:无法打开文件'shrUtils32D.lib' 其他图书目录包含: $(CudaToolkitLibDir) ../../ common / lib / $(PlatformName) ../../../ shared / lib / $(PlatformName) 我找不 ..
发布时间:2017-03-05 19:11:13 其它硬件开发

CMake生成一个MSVC CUDA项目,目标较新的设备

我的电脑有一个GTX 580(计算能力2.0)。 我想编译一个使用动态并行性的CUDA源码, 我知道我不能在GPU上运行程序,但是,应该可以在我的机器上编译这个代码。我假设这是因为我可以编译没有问题使用3.5功能的CUDA示例。这些示例带有“手动生成”的Visual Studio项目(我猜)。 我相信我的问题是与CMake。我使用CMake生成Visual Studio 2012 ..

cudaTextureObject_t与Fermi的兼容性

我已经实现了一个内核处理数据,其中输入来自 cudaTextureObject_t 。为了增加我的方法的吞吐量,我用 N 不同的流对象调用这个内核。因此,我创建了 N 纹理对象,然后传递给不同的内核调用。 这在具有Kepler架构的GPU上工作得很好。但是,现在我想在具有Fermi架构的GPU上使用此方法,其中没有 cudaTextureObject_t 可用。 我的问题如下:有一种基 ..
发布时间:2017-03-05 19:09:30 其它硬件开发

为什么只有一个经线由cuda执行的SM?

我经常在某些CUDA资料中找到以下字词: “在任何时候,只有一个经卷由SM执行”。 这里我不太明白,因为每个SM可以同时运行几百到几千个线程,为什么只有一个warp,即32个线程,可以在一个时间点执行? / p> 感谢! 解决方案 CUDA硬件的不同代,但是例如在较早的几代中,每个SM具有8个执行单元,每个执行单元执行4个线程(每4个周期来自每个线程的一个指令)。因此,你 ..
发布时间:2017-03-05 19:08:04 其它硬件开发

基本CUDA - 使用C ++在内核上运行内核

我刚接触CUDA&试图获得一个基本的内核在设备上运行。我已经编制的例子&然后运行所以我知道设备驱动程序工作/ CUDA可以成功运行。我的目标是让我的C ++代码调用CADU,大大加快了一个任务。我一直在阅读一堆不同的帖子在线,如何做到这一点。具体来说,[here]:我可以在C ++中调用cuda函数调用吗? / a>。 我的问题很简单(包括所有)运行我的代码(发布下面)我没有错误,但内核不显 ..
发布时间:2017-03-05 19:07:42 其它硬件开发

基本CUDA C程序在某些条件下崩溃

我正在编写一个基本的CUDA程序,以更好地理解语言。我写了一些非常基本的东西,只是并行添加两个向量,并将结果打印到ppm文件。现在,向量中的值是不相关的,因为我计划调整后来产生一些类型的有趣的图像。问题是图像的分辨率(这实际上是结果向量)导致程序几乎立即崩溃,如果我使它太大。现在考虑该程序: #include #define cols 500 #define ..
发布时间:2017-03-05 19:07:31 其它硬件开发

CUDA中的经线和银行的机制是什么?

我是一个新手在学习CUDA并行编程。现在我困惑在设备的全局内存访问。 有以下几点: 据说,一个块中的线程被分割成经线。在每个翘曲中最多有32个线程。这意味着相同warp的所有这些线程将与同一处理器同时执行。 当涉及到一个块的共享内存时,它会被分成16个存储区。为了避免库冲突,多个线程可以同时读取一个库,而不是在同一个库中写入。这是正确的解释吗? 提前感谢! (例如“特 ..
发布时间:2017-03-05 19:06:55 其它硬件开发

在CUDA之后的可用内存cudaGraphicsGLRegisterImage而不破坏缓冲区

我正在开发一个项目,使用OpenGL绘图技术和CUDA的组合来执行分析。我想使用CUDA生成一个renderbuffer,然后使用OpenGL对其进行分析。因为缓冲区的数量,我需要的内存在渲染缓冲区完成后,CUDA免费,但缓冲区仍然可用于OpenGL。 更多,我用创建缓冲区 glGenRenderbuffersEXT glBindRenderbufferEXT glRend ..
发布时间:2017-03-05 19:06:27 其它硬件开发