其它硬件开发
当我运行 make 命令以符合Linux 64位下的CUDA程序时,会收到以下错误消息: 错误:cutil.h:没有这样的文件或目录 我发现一些答案,但没有一个有用。 在 makefile c $ c> CUDA_SDK_PATH ,但在CUDA入门指南中找不到有关SDK的任何有用信息: http://docs.nvidia.com/cuda/cuda-get
..
这是一个愚蠢的问题,但我想知道CUDA是否使用解释器或编译器? 我想知道,因为我不太确定CUDA如何管理源代码在具有不同计算能力的两张卡上运行。 解决方案 维基百科: 程序员通过PathScale Open64 C编译器使用“C for CUDA”(C与Nvidia扩展和某些限制)。 所以,你的答案是:它使用编译器。 在多张卡片上投放(来源): CUDA C /
..
我使用OpenCV 2.3.1与CUDA 4.0。 我已经安装了OpenCV 2.3.1通过CMAKE with WITH_CUDA标志。然后我编译的OpenCV解决方案在发布和调试模式,但仍然是当我使用 getCudaEnabledDevice 函数 CV :: GPU 它返回0.这意味着它没有检测到CUDA启用的设备。 似乎我做了一切正确,仍然发生了什么?? 任何人都可以建议
..
我有一台机器配有1.1计算能力的CUDA GPU。我想重新安装CUDA,我想我会用5.0; CUDA能力和CUDA版本之间是否有兼容性?在使用CUDA 5.0和C-C 1.1时,我会遇到麻烦。 GPU? 感谢! 解决方案 目前,向后兼容旧CUDA兼容硬件。因此,CUDA工具包将与计算1.1功能设备完美配合,但旧设备不支持该工具包中存在的许多功能。
..
是否可以从(主机)应用程序的不同线程启动内核,并让它们在同一GPGPU设备上并发运行? 解决方案 编程指南 a href =“http://developer.download.nvidia.com/compute/cuda/3_1/toolkit/docs/NVIDIA_CUDA_C_ProgrammingGuide_3.1.pdf”rel =“nofollow”> http://dev
..
我想从一个CUDA代码( kernel.cu )创建一个.dll文件,以便从外部C程序中使用这个库。经过一些尝试,我只是在.cu文件中留下一个简单的C函数。代码如下: kernel.cu #include #include“kernel.h” void hello(const char * s){ printf(“Hello%s\\\ ”,s);
..
我写了一个内核,计算给定的D维向量 q (存储在常量内存中)和数组 pts N向量(也是D维)。 内存中的数组布局使得前N个元素是所有N个向量的第一个坐标,然后是N个第二坐标的序列等等。 这里是内核: __ constant__ float q [20] __global__ void compute_dists(float * pt,float * dst, int
..
我一直在使用Visual Studio 2010 Express进行我的CUDA相关开发。最近,我从CUDA 5.0升级到5.5。当我这样做,我发现了什么似乎是一个奇怪的bug:每当我去清理(或重建)我的VS项目,我得到一个错误与nvcc相关: nvcc:致命错误:nvcc找不到受支持的Microsoft Visual Studio版本。只支持版本2008,2010和2012
..
我做了一个简单的CUDA程序练习。它只是将数据从一个数组复制到另一个数组: import pycuda.driver as cuda import pycuda.autoinit import numpy as np from pycuda.compiler import SourceModule #全局常量 N = 2 ** 20#数组大小a a = np。 lin
..
我正在尝试创建一个数组结构的数组里面和加载到GPU上。我想我按照步骤正确做到这一点。 使用malloc在CPU上创建结构。 cudamalloc 数组到结构体。 使用cudamalloc在GPU上创建结构 将CPU结构复制到GPU结构。 当我运行这个代码,它会正确工作,只要我不改变值 p [i] .c [0] 。如果我删除 p [i] .c [0] = 3.3; 行,那么它输出预
..
如Nvidia的Inline PTX Assembly文档中所述,使用内联汇编的语法是: asm(“temp_string”:“constraint”(output):“constraint”(input)) ; 以下是两个示例: asm(“vadd.s32.s32.s32%0,%1.h0 ,%2.h0;“:”= r“(v):”r“(a),”r“(b)); “as”(“vadd
..
Cuda-gdb服从所有我设置的断点,然后在编译时添加“-arch sm_20”标志。我不得不添加这个,以避免错误被抛出:'atomicAdd is undefined'(指向这里)。这是我当前的语句来编译代码: nvcc -g -G --maxrregcount = 32 Main.cu -o SW_exe (..including头文件...)-arch sm_20
..
我正在使用NVidia Tesla 2050 GPU卡设置新的Dell Precision工作站。我想安装R的包gputools。我的操作系统是带有KDE 4.4的openSuse 11.3。 我下载了NVidia的CUDA Toolkit 3.2并安装在/ usr / local / cuda中,我也下载了最新版本的CULA工具集(版本R10)并安装在/ usr / local / cul
..
我有两个cuda内核运行,一个接一个: __ global__ void calculate_histo float * const d_logLuminance, unsigned int * d_histogram, float min_logLum, float lumRange, int numBins, int num_elements){ extern __sh
..
假设我有一个从MxN 2D矩阵转换的1D数组,我想并行化每个列,并做一些操作。 例如,如果我有一个3x3的矩阵: 1 2 3 4 5 6 7 8 9 而且我想根据列#添加列中的每个数字(因此第一列将添加1,第二列将添加2 ....),然后变为: 1 + 1 2 + 1 3 + 1 4 + 2 5 + 2 6 + 2 7 +
..
我使用的NVIDIA geforce卡,如果我尝试运行一些CUDA程序,它会在2秒后出现错误。我阅读了此处,您可以使用 TDRlevel 键入 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers 。但是,我在注册表中没有看到任何这样的键。是否需要自己添加?有人遇到这个问题。如果是,你是如何解决的?感谢。 解决
..
这可能看起来像一个简单的问题,但 cufft 的用法对我并不是很清楚。 是:以下哪个实现是正确的? 1) //循环调用 cufftPlan3d(plan1,x,y,z); cufftexec(plan1,data1); cufftexec(plan1,data2); cufftexec(plan1,data3); destroyplan(plan1)
..
我有一个从前一个问题提供的示例cuBLAS Fortran绑定例程此处。我运行的是Ubuntu 13.10,IFORT 14.0.1和Cuda 5.5。代码如下: cublas.f 程序cublas_fortran_example implicit none 整数i,j c辅助函数 整数cublas_init 整数cublas_shutdown 整数cublas_all
..
我是新的在这个CUDA和并行计算工作人员,我有一个最近的问题。我有一个Ubuntu 12.04系统,主机和Jetson TK1作为目标。我使用Nsight Eclipse编写,编辑和编译算法。我使用SSH协议从主机连接TK1。 当我尝试一些文件传输操作时,它总是可以。但是,有时交叉编译过程糟透了,错误“连接到ubuntu@192.168.0.94被取消”,标题为“RSEG1058”。我不明白
..
我理解在CUDA的内存hierachy,我们有像共享内存,纹理内存,常量内存,寄存器和当然的全局内存,我们分配使用cudaMalloc()。 我一直在搜索任何可以找到的文档,但我还没有遇到任何明确说明什么是全局内存。 我相信所分配的全局存储器在显卡本身的GDDR上,而不是与CPU共享的RAM,因为其中一个文档说明指针不能被主机侧取消引用。我是对吗? 解决方案 全局内存是一个虚拟
..