标签: gpu

cublas 未能同步停止事件?

我正在使用matrixMulCUBLAS示例代码,并尝试将默认矩阵大小更改为稍微更有趣的 rows=5k x cols=2.5k ,然后Failed to synchronize on the stop event (error code unknown error)!当所有计算完成时,该示例失败,并在第 #377 行出现错误,它是显然是在清理古巴人。这是什么意思?以及如何修复?

我已经安装了 cuda 5.0,EVGA FTW nVidia GeForce GTX 670内存为 2GB。截至目前,驱动程序版本为最新版本 314.22。

cuda gpu cublas

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

流 0(默认)和其他流的行为

在 CUDA 中,流 0 与其他流有何关系?流 0(默认流)是否与上下文中的其他流同时执行?

考虑以下示例:

cudaMemcpy(Dst, Src, sizeof(float)*datasize, cudaMemcpyHostToDevice);//stream 0;

cudaStream_t stream1;

/...creating stream1.../

somekernel<<<blocks, threads, 0, stream1>>>(Dst);//stream 1;
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,编译器能否确保始终在完成somekernel启动或与 并发执行? cudaMemcpysomekernelcudaMemcpy

cuda gpu nvidia cuda-streams

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

我可以在我的代码中使用 nVidia Quadro KxxxxM (MXM) 移动 GPU 的共享内存吗?

正如我所看到的,在Google 和许多网站上, nVidia Quadro KXXXXM - 移动 GPU (MXM)都有“共享内存:否” 。

但如果我想为这些卡编写 CUDA C/C++,我可以在代码中使用共享内存吗?如果我可以,那么如果我这样做会发生什么 - 它会使用全局 GPU-RAM 吗?

cuda gpu gpgpu nvidia gpu-shared-memory

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

我可以将 CUDA 与非 NVIDIA GPU 一起使用吗?

我正在寻找一种在没有 NVIDIA GPU 的系统上运行 CUDA 程序的方法。

我尝试安装 MCUDA 和 gpuOcelot,但似乎在安装时遇到了一些问题。

我已经完成了如何使用软件实现没有 GPU 的情况下运行 CUDA 中给出的答案. 那里的答案建议更改系统硬件,使用模拟器(现已弃用)或切换到 OpenCL。这些都不能充分满足我的要求

cuda gpu gpgpu

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

理解“nvidia-smi topo -m”输出

为了在系统上利用 GPU,我希望能够绘制框图并理解“nvidia-smi topo -m”输出表示的连接。

这是一个示例输出: 在此处输入图片说明

在此处输入图片说明

有人可以提供一个系统级框图吗?连接的描述也会很棒。我相信这会帮助很多人利用他们的多 GPU 系统。

cuda gpu mpi multi-gpu pci-e

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

GPU RAM已占用但没有PID

nvidia-smi显示了在指示在GPU0利用3.77GB但没有进程被列出为GPU0:

(base) ~/.../fast-autoaugment$ nvidia-smi
Fri Dec 20 13:48:12 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.50       Driver Version: 430.50       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN Xp            Off  | 00000000:03:00.0 Off |                  N/A |
| 23%   34C    P8     9W / 250W |   3771MiB / 12196MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  TITAN Xp            Off  | 00000000:84:00.0 …
Run Code Online (Sandbox Code Playgroud)

ram gpu nvidia

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

如何知道推力的结果中有多少个元素::partition_copy

我正在尝试使用推力库的 partition_copy 函数对数组进行分区。

我看过传递指针的例子,但我需要知道每个分区中有多少元素。

我尝试过的是将设备向量作为 OutputIterator 参数传递,如下所示:

#include <thrust/device_vector.h>
#include <thrust/device_ptr.h>
#include <thrust/partition.h>

struct is_even {
    __host__ __device__ bool operator()(const int &x) {
        return (x % 2) == 0;
    }
};

int N;
int *d_data;
cudaMalloc(&d_data, N*sizeof(int));

//... Some data is put in the d_data array

thrust::device_ptr<int> dptr_data(d_data);

thrust::device_vector<int> out_true(N);
thrust::device_vector<int> out_false(N);

thrust::partition_copy(dptr_data, dptr_data + N, out_true, out_false, is_even());
Run Code Online (Sandbox Code Playgroud)

当我尝试编译时出现此错误:

error: class "thrust::iterator_system<thrust::device_vector<int, thrust::device_allocator<int>>>" has no member "type"
      detected during instantiation of "thrust::pair<OutputIterator1, OutputIterator2> thrust::partition_copy(InputIterator, InputIterator, OutputIterator1, OutputIterator2, Predicate) [with …
Run Code Online (Sandbox Code Playgroud)

c++ cuda gpu thrust

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

为什么小输入的 cpu 比 gpu 快?

我曾经历过,对于小输入大小,CPU 的执行速度比 GPU 快。为什么是这样?准备,数据传输还是什么?

例如对于内核和 CPU 功能(CUDA 代码):

__global__ void squareGPU(float* d_in, float* d_out, unsigned int N) {
    unsigned int lid = threadIdx.x;
    unsigned int gid = blockIdx.x*blockDim.x+lid;
    if(gid < N) {
        d_out[gid] = d_in[gid]*d_in[gid]; 
    }
}

void squareCPU(float* d_in, float* d_out, unsigned int N) {
    for(unsigned int i = 0; i < N; i++) {
        d_out[i] = d_in[i]*d_in[i]; 
    }
}
Run Code Online (Sandbox Code Playgroud)

在 5000 个 32 位浮点数的数组上运行这些函数 100 次,我使用一个小测试程序得到以下结果

Size of array:
5000
Block size:
256

You chose N=5000 and block …
Run Code Online (Sandbox Code Playgroud)

cpu cuda gpu

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

Tensorflow-GPU 不使用带有 CUDA、CUDNN 的 GPU

我想在 GPU 上使用 Tensorflow。所以我安装了所有需要的工具并安装如下 -

  1. CUDA-11.2
  2. CUDNN-11.1
  3. 蟒蛇-2020.11
  4. Tensorflow-GPU-2.3.0 在此处输入图片说明

我使用 deviseQuery 示例测试了我的 cuda,cudnn 是否正在工作。但是 Tensorflow 没有使用 GPU。然后我发现版本兼容性问题是可能的,所以我在 Tensorflow 网站上安装了 CudaToolkit,cudnn,使用 conda 环境检查版本兼容性,如下所示。

  1. CUDA-10.2.89
  2. CUDNN-7.6.5
  3. Tensorflow-GPU-2.3.0

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

但是在尝试了 Tensorflow-GPU 之后,还没有使用 GPU。所以我现在在做什么?任何步骤或建议都需要。

python gpu tensorflow

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

openGL 扩展的可用性和不同的 GPU 品牌

我在 Windows 上使用 openFrameworks,它使用 GLFW 和 GLEW,我在不同 GPU 品牌上的扩展可用性方面遇到问题。

基本上,如果我在 openGL 2 上运行我的程序,扩展是可用的。但是,如果我更改为 openGL 3.2 或更高版本,则所有扩展在 Nvida(在 * GTX1080 上测试)和 Intel (*UHD) 上都不可用,但在 AMD(*Vega Mobile GL/GH 和 RX 5700)上不可用。

这意味着无法使用 GL_ARB_texture_float,因此我的计算着色器无法按预期工作。

我正在使用 openGL 4.3,用于计算着色器支持和英特尔 GPU 支持。所有驱动程序都是最新的,所有 GPU 都支持 GL_ARB_texture_float。

此外,在 GLSL 上启用扩展没有任何作用。

这就是 openFrameworks 制作上下文的方式:

glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, settings.glVersionMajor);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, settings.glVersionMinor);
if((settings.glVersionMajor==3 && settings.glVersionMinor>=2) || settings.glVersionMajor>=4)
{
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
}
if(settings.glVersionMajor>=3)
{
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
}
Run Code Online (Sandbox Code Playgroud)

不确定发生了什么,也不知道如何搜索这样的问题。欢迎任何指点!

opengl textures gpu openframeworks glfw

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