标签: cuda

CUDA:如何使用-arch和-code以及SM vs COMPUTE

在使用nvcc构建时,我仍然不确定如何正确指定代码生成的体系结构.我知道我的二进制文件中嵌入了机器代码和PTX代码,这可以通过控制器开关-code-arch(或两者的结合使用-gencode)来控制.

现在,根据除了两种编译器标志也有指定架构方法有两种:sm_XXcompute_XX,其中compute_XX指的是虚拟和sm_XX一个真正的架构.该标志-arch仅采用虚拟体系结构的标识符(例如compute_XX),而-code标志采用真实和虚拟体系结构的标识符.

该文档指出了-arch指定为其编译输入文件的虚拟体系结构.但是,此PTX代码不会自动编译为机器代码,但这是一个"预处理步骤".

现在,-code应该指定汇编和优化PTX代码的架构.

但是,不清楚哪个PTX或二进制代码将嵌入二进制文件中.例如-arch=compute_30 -code=sm_52,如果我指定,这是否意味着我的代码将首先被编译为功能级别3.0 PTX,之后将创建功能级别5.2的机器代码?什么将被嵌入?

如果我只是说明-code=sm_52会发生什么呢?只嵌入V5.2的机器代码是用V5.2 PTX代码创建的?那有什么区别-code=compute_52

cuda nvcc fat-binaries ptx

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

如何在具有2.0功能的GPU上运行tensorflow?

我已经在Linux Ubuntu 16.04上成功安装了tensorflow(GPU)并进行了一些小改动,以使其与新的Ubuntu LTS版本一起使用.

但是,我想(谁知道为什么)我的GPU满足了计算能力大于3.5的最低要求.事实并非如此,因为我的GeForce 820M只有2.1.有没有办法让tensorflow GPU版本与我的GPU一起工作?

我问的是这个问题,因为显然没有办法让在iOS上使用数字流GPU版本,但通过搜索互联网,我发现事实并非如此,事实上,如果不是因为这个不满足的要求,我几乎可以工作.现在我想知道GPU计算能力的这个问题是否也可以修复.

cuda nvidia tensorflow cudnn

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

CUDA应用程序在几秒钟后超时和失败 - 如何解决这个问题?

我注意到CUDA应用程序在失败并退出之前往往有5-15秒的粗略最大运行时间.我意识到没有CUDA应用程序运行那么久是理想的,但假设它是使用CUDA的正确选择,并且由于每个线程的顺序工作量必须运行那么长,有没有办法延长这个时间或者绕过它?

timeout cuda gpgpu gpu-programming

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

恢复NVCC的Apple Clang版本

我正在尝试运行NVCC来在我的Mac上编译CUDA程序.

当我尝试运行NVCC时,我收到以下错误:"nvcc致命:不支持主机编译器('Apple clang')的版本('70300')".

我最近将我的XCode版本更新为7.3,将Mac更新为10.11.4.

有没有办法还原我的Clang版本?

macos xcode cuda clang ios

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

cuda.h,cuda_runtime.h,cuda_runtime_api.h之间的区别

我开始使用CUDA进行编程,在某些示例中,我找到了包含文件cuda.h,cuda_runtime.hcuda_runtime_api.h包含在代码中.有人可以向我解释这些文件之间的区别吗?

cuda header-files

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

cuda块同步

我有b个块,每个块有t个线程.我可以用

 __syncthreads()
Run Code Online (Sandbox Code Playgroud)

同步特定块中的线程.例如

__global__ void aFunction()
{
    for(i=0;i<10;i++)
    {
       //execute something
        __syncthreads();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的问题是同步所有块中的所有线程.我怎样才能做到这一点?

cuda

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

CUDA for .net?

我知道有很多CUDA语言绑定,比如PyCUDA,但是.Net 有什么好的绑定吗?我见过的唯一一个是这个,但我想知道是否还有其他人.

.net pinvoke interop language-binding cuda

27
推荐指数
3
解决办法
8082
查看次数

How do I start a new CUDA project in Visual Studio 2008?

This is an incredibly basic question, but how do I start a new CUDA project in Visual Studio 2008? I have found tons and tons of documentation about CUDA related matters, but nothing about how to start a new project. I am working with Windows 7 x64 Visual Studio 2008 C++. I would really like to find some sort of really really basic Hello World app to just get a basic program compiling and running.

Edit:

I tried your steps …

c++ cuda visual-studio

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

在cuda内核中运行

有什么方法可以在cuda内核中有一个函数.我的意思是我的cuda内核很长很难调试.谢谢.

cuda

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

CUDA如何为GPU分配设备ID?

当计算机具有多个支持CUDA的GPU时,每个GPU都会分配一个device ID.默认情况下,CUDA内核会执行device ID 0.您可以使用cudaSetDevice(int device)选择其他设备.

假设我的机器中有两个GPU:GTX 480和GTX 670.CUDA 如何确定哪个GPU device ID 0和哪个GPU device ID 1


关于CUDA如何分配设备ID的想法(只是头脑风暴):

  • 计算能力的降序
  • PCI插槽号
  • 将设备添加到系统的日期/时间(刚刚添加到计算机的设备的ID号越高)

动机:我正在研究一些HPC算法,我正在为几个GPU进行基准测试和自动调整.我的处理器有足够的PCIe通道,可以在全带宽下将cudaMemcpys驱动到3个GPU.因此,我不打算不断地将GPU交换进机器,而是计划在计算机中保留3个GPU.我希望能够预测当我在计算机中添加或更换某些GPU时会发生什么.

cuda gpu gpgpu nvidia

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