草庐IT

nvidia-cuda-toolkit

全部标签

c++ - CUDA 和类

我已经到处寻找有关如何在CUDA中准确使用类的一些见解,虽然人们普遍认为它可以完成并且显然是由人们完成的,但我很难找到如何实际做到这一点。我有一个类,它使用运算符重载等实现基本位集。我需要能够在主机和设备上实例化此类的对象,在两者之间进行复制等。我是否在.cu中定义了此类?如果是这样,我如何在我的主机端C++代码中使用它?类的函数不需要像threadId那样访问特殊的CUDA变量;它只需要能够在主机和设备端使用即可。感谢您的帮助,如果我以完全错误的方式处理此问题,我很想听听替代方案。 最佳答案 在您#include的header中定

linux - 如何从命令行获取 nvidia 驱动程序版本?

为了调试CUDA代码和检查兼容性,我需要找出我安装的GPU的nvidia驱动程序版本。我找到了Howtogetthecudaversion?但这对我没有帮助。 最佳答案 使用nvidia-smi应该会告诉你:bwood@mybox:~$nvidia-smiMonOct2912:30:022012+------------------------------------------------------+|NVIDIA-SMI3.295.41DriverVersion:295.41||------------------------

java - Java 中 GPGPU/CUDA/OpenCL 的最佳方法?

图形处理单元(GPGPU)上的通用计算是一个非常有吸引力的概念,可以利用GPU的强大功能进行任何类型的计算。我很想将GPGPU用于图像处理、粒子和快速几何运算。目前,该领域的两个竞争者似乎是CUDA和OpenCL。我想知道:OpenCL是否可以在Windows/Mac上的Java中使用?与OpenCL/CUDA接口(interface)的库方法有哪些?是否可以直接使用JNA?我是不是忘记了什么?感谢任何现实世界的经验/例子/war故事。 最佳答案 AFAIK,JavaCL/OpenCL4Java是目前唯一可在所有平台上使用的Open

c++ - 为什么 CUDA 固定内存这么快?

当我使用固定内存进行CUDA数据传输时,我观察到数据传输速度显着加快。在linux上,实现这一点的底层系统调用是mlock。从mlock的手册页中,它指出锁定页面可以防止它被换出:mlock()lockspagesintheaddressrangestartingataddrandcontinuingforlenbytes.AllpagesthatcontainapartofthespecifiedaddressrangeareguaranteedtoberesidentinRAMwhenthecallreturnssuccessfully;在我的测试中,我的系统上有几场空闲内存,所以

c++ - 如何在 Visual Studio 2010 中启动 CUDA 应用程序?

直接问题:如何在VisualStudio2010中创建一个简单的helloworldCUDA项目?背景:我写过CUDA内核。我非常熟悉VisualStudio2005中的.vcproj文件——手动调整了几个。在VS2005中,如果我想构建一个CUDA内核,我添加一个自定义构建规则,然后显式定义nvcc调用来构建文件。我已迁移到Win7和VS2010,因为我真的很想试用nSight。我安装了nSight1.5。但这是我完全迷失的地方。如果我像以前一样继续,nvcc报告它只支持msvc8.0和9.0。但该网站明确声明它支持VS2010。我在其他地方读到我还需要安装VS2008(msvc9.

c++ - 如何在 Visual Studio 2010 中启动 CUDA 应用程序?

直接问题:如何在VisualStudio2010中创建一个简单的helloworldCUDA项目?背景:我写过CUDA内核。我非常熟悉VisualStudio2005中的.vcproj文件——手动调整了几个。在VS2005中,如果我想构建一个CUDA内核,我添加一个自定义构建规则,然后显式定义nvcc调用来构建文件。我已迁移到Win7和VS2010,因为我真的很想试用nSight。我安装了nSight1.5。但这是我完全迷失的地方。如果我像以前一样继续,nvcc报告它只支持msvc8.0和9.0。但该网站明确声明它支持VS2010。我在其他地方读到我还需要安装VS2008(msvc9.

使用 cmake 构建 CUDA 目标文件

我得到了以下设置。我将使用MPI和其他使用CUDA的东西来扩展用C++编写的框架。该项目使用cmake进行构建。我想避免为我的扩展使用库并从我的cuda源构建目标文件。之后,我想链接这些目标文件和用其他编译器编译的其他一些文件。有没有人知道如何实现这一目标?我看过http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake获取有关如何将CUDA与cmake一起使用的概述,但此解决方案也使用库。 最佳答案 可以使用较新版本的cmake附带的CUDA支持来编译目标文件。您使用cud

c++ - 如何让cmake找到CUDA

我正在尝试构建thisproject,它具有CUDA作为依赖项。但是cmake脚本在系统上找不到CUDA安装:cls~/workspace/gpucluster/cluster/build$cmake..--TheCcompileridentificationisGNU4.7.1--TheCXXcompileridentificationisGNU4.7.1--CheckforworkingCcompiler:/usr/bin/gcc--CheckforworkingCcompiler:/usr/bin/gcc--works--DetectingCcompilerABIinfo--De

c++ - CUDA __global__ 函数中的 printf

我目前正在GPU上编写矩阵乘法并想调试我的代码,但由于我不能在设备函数中使用printf,所以我可以做些什么来查看该函数内部发生了什么。这是我当前的功能:__global__voidMatrixMulKernel(MatrixAd,MatrixBd,MatrixXd){inttx=threadIdx.x;intty=threadIdx.y;intbx=blockIdx.x;intby=blockIdx.y;floatsum=0;for(intk=0;k我很想知道Ad和Bd是不是我想的那样,看看是否真的调用了那个函数。 最佳答案 CU

c++ - CUDA __global__ 函数中的 printf

我目前正在GPU上编写矩阵乘法并想调试我的代码,但由于我不能在设备函数中使用printf,所以我可以做些什么来查看该函数内部发生了什么。这是我当前的功能:__global__voidMatrixMulKernel(MatrixAd,MatrixBd,MatrixXd){inttx=threadIdx.x;intty=threadIdx.y;intbx=blockIdx.x;intby=blockIdx.y;floatsum=0;for(intk=0;k我很想知道Ad和Bd是不是我想的那样,看看是否真的调用了那个函数。 最佳答案 CU