标签: cuda

CUDA确定每个块的线程数,每个网格块数

我是CUDA范例的新手.我的问题是确定每个块的线程数和每个网格的块数.有点艺术和试验吗?我发现很多例子都是为这些东西选择了看似随意的数字.

我正在考虑一个问题,我可以将矩阵 - 任何大小 - 传递给乘法方法.因此,C的每个元素(如在C = A*B中)将由单个线程计算.在这种情况下,您如何确定线程/块,块/网格?

cuda nvidia dimensions matrix-multiplication

54
推荐指数
3
解决办法
6万
查看次数

Python GPU编程

我目前正在研究python中的一个项目,我想利用GPU进行一些计算.

乍一看似乎有很多可用的工具; 乍一看,我觉得我错过了什么.

Copperhead看起来很棒,但还没有被释放.似乎我只限于编写低级CUDA或openCL内核; 没有推力,没有cudpp.如果我喜欢有东西排序,我将不得不自己做.

这对我来说似乎不对.我确实错过了什么吗?或者这个GPU脚本还没有完全实现炒作呢?

编辑:GPULIB似乎可能是我需要的.文档是基本的,python绑定只是顺便提一下,但我现在申请下载链接.任何人都有这方面的经验,或链接到类似的免费学术用途的GPU库?ReEdit:好的,python绑定实际上是不存在的.

编辑2:所以我想我最好的选择是用C/CUDA写一些东西并从python中调用它?

python cuda gpu

53
推荐指数
5
解决办法
7万
查看次数

什么时候调用cudaDeviceSynchronize?

什么时候cudaDeviceSynchronize真的需要调用这个函数?

据我从CUDA文档中了解,CUDA内核是异步的,因此我们应该cudaDeviceSynchronize在每次内核启动后调用它们.但是,cudaDeviceSynchronize在时间测量之前,除了一个之外,我尝试了相同的代码(训练神经网络).我发现我得到了相同的结果,但速度在7-12x之间(取决于矩阵大小).

所以,问题是是否有任何理由使用cudaDeviceSynchronize时间测量.

例如:

我应该放在cudaDeviceSynchronize两者之间吗?

从我的实验看来我没有.

为什么这么cudaDeviceSynchronize慢的程序呢?

cuda gpu gpgpu

53
推荐指数
3
解决办法
6万
查看次数

是否可以在AMD GPU上运行CUDA?

我想将我的技能扩展到GPU计算.我熟悉光线跟踪和实时图形(OpenGL),但下一代图形和高性能计算似乎是在GPU计算或类似的东西.

我目前在家用电脑上使用AMD HD 7870显卡.我可以为此编写CUDA代码吗?(我的直觉不是,但是因为Nvidia发布了编译器二进制文件,我可能错了).

第二个更普遍的问题是,我从哪里开始GPU计算?我确定这是一个经常被问到的问题,但我看到的最好是从08'开始,我认为从那时起该领域发生了很大的变化.

cuda gpu gpgpu amd nvidia

52
推荐指数
6
解决办法
11万
查看次数

使用Nvidia的CUDA的压缩库

有没有人知道一个使用NVIDIA的CUDA库实现标准压缩方法(如Zip,GZip,BZip2,LZMA ......)的项目?

我想知道是否能够利用大量并行任务(如压缩)的算法在显卡上的运行速度要比使用双核或四核CPU快得多.

您如何看待这种方法的优缺点?

compression cuda gpgpu

51
推荐指数
3
解决办法
4万
查看次数

如何编译CUDA代码然后将其链接到C++项目?

我正在寻找帮助开始涉及CUDA的项目.我的目标是有一个项目,我可以在本机g ++编译器中编译,但使用CUDA代码.我知道我必须在nvcc编译器中编译我的CUDA代码,但根据我的理解,我可以以某种方式将CUDA代码编译成cubin文件或ptx文件.

这是我的问题:

  1. 如何使用nvcc编译成cubin文件或ptx文件?我不需要-c或其他东西吗?
  2. 我想使用哪种文件类型?
  3. 有哪些g ++命令可以正确地编译和链接项目?

假设如下:

  1. 我有一个名为"main.cpp"的文件,其中包含一个main函数,包含cuda.h.
  2. 我有另一个名为"cudaFunc.cu"的文件,里面有CUDA代码.比方说,我想添加两个存在于main.cpp中的整数数组.

cuda g++ nvcc

47
推荐指数
3
解决办法
6万
查看次数

LNK2038:检测到'RuntimeLibrary'不匹配:值'MT_StaticRelease'与file.obj中的值'MD_DynamicRelease'不匹配

我正在整合Matlab,CCuda在一个项目中.我使用Matlab mix将c语言编写的matlab mx函数与cuda运行时库连接起来,出现了关于静态发布中的冲突和c文件与库之间的动态发布的链接错误.谁能解决这个问题?

error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in file.obj. 
Run Code Online (Sandbox Code Playgroud)

c++ matlab cuda visual-c++

47
推荐指数
4
解决办法
7万
查看次数

Fortran vs C++,Fortran如今仍然在数值分析方面有任何优势吗?

随着C++编译器的快速发展,尤其是英特尔编译器,以及在C/C++代码中直接应用SIMD函数的能力,Fortran在数值计算领域仍然具有任何真正的优势吗?

我来自应用数学背景,我的工作涉及大量的数值分析,计算,优化等,具有严格定义的性能要求.

我对Fortran几乎一无所知,我在C/CUDA/matlab方面有一些经验(如果你认为后者是一种计算机语言),我的日常任务包括分析非常大的数据(例如10GB大的矩阵),并且看起来该程序至少花费2/3的时间来访问内存(这就是为什么我将其部分工作发送到GPU),你是否认为对我来说至少尝试Fortran例程可能是值得的我的代码中一些性能至关重要的部分,以提高我的程序的性能?

因为那里需要完成复杂性和事情,所以如果只有那里有显着的性能优势,我只会这样做,感谢提前.

c c++ fortran cuda

46
推荐指数
4
解决办法
5万
查看次数

我应该如何以及何时使用cuda API使用倾斜指针?

我对如何使用cudaMalloc()和分配和复制线性内存有很好的理解cudaMemcpy().但是,当我想使用CUDA函数来分配和复制2D或3D矩阵时,我常常会被各种参数所迷惑,特别是关于在处理2D/3D数组时总是存在的倾斜指针.文档很适合提供一些如何使用它们的例子,但它假设我熟悉填充和音高的概念,我不是.

我通常最终会调整我在文档中或网络上其他地方找到的各种示例,但后面的盲目调试非常痛苦,所以我的问题是:

什么是球场?我该如何使用它?如何在CUDA中分配和复制2D和3D阵列?

c++ cuda

45
推荐指数
1
解决办法
1万
查看次数

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 
Maximum number of threads per block:           1024
Run Code Online (Sandbox Code Playgroud)

我想我听说每个CUDA核心都可以并行运行warp,并且warp是32个线程.说卡可以并行运行512*32 = 16384个线程,或者我离开了,CUDA内核是不是真的并行运行?

cuda gpgpu

44
推荐指数
2
解决办法
4万
查看次数

标签 统计

cuda ×10

gpgpu ×4

c++ ×3

gpu ×3

nvidia ×2

amd ×1

c ×1

compression ×1

dimensions ×1

fortran ×1

g++ ×1

matlab ×1

matrix-multiplication ×1

nvcc ×1

python ×1

visual-c++ ×1