cuda相关内容

使用 native-CUDA-support CMake 获取 C++ 目标中的 CUDA 包含目录?

在 CMake 版本 3.8 中,引入了对 CUDA 作为语言的原生支持.当项目将 CUDA 作为其语言之一时,CMake 将继续定位 CUDA(例如,它定位 nvcc 二进制文件). 只要你只编译 CUDA 代码——这就足够了.但是如果你想在那个项目中编译一个 C++ 目标呢?CUDA 包含不是自动 -I 的,并且 CMakeCache.txt 似乎没有在任何地方包含 CUDA 包含路径. ..
发布时间:2022-01-10 15:59:34 C/C++开发

每个线程的 Cuda 寄存器

据我了解,对于 2.x 计算能力设备,每个线程有 63 个寄存器限制.您知道计算能力为 1.3 的设备的每个线程的寄存器限制是多少吗? 我有一个大内核,正在 GTX260 上进行测试.我很确定我使用了很多寄存器,因为内核非常复杂并且我需要很多局部变量.根据 Cuda 分析器,我的寄存器使用量是 63(静态 Smem 是 68,虽然我不太确定这意味着什么,动态 Smem 是 0),虽然我很确定 ..
发布时间:2022-01-10 15:59:19 其他开发

为什么 CUDA 中的常量内存大小受到限制?

根据 “CUDA C 编程指南";,只有在命中多处理器常量缓存时,常量内存访问才会受益(第 5.3.2.4 节)1.否则,半扭曲的内存请求可能比合并全局内存读取的情况更多.那么为什么恒定的内存大小限制为 64 KB? 为了不问两次,再问一个问题.据我了解,在 Fermi 架构中,纹理缓存与 L2 缓存相结合.纹理使用是否仍然有意义,或者全局内存读取以相同的方式缓存? 1恒定内存(第 5 ..
发布时间:2022-01-10 15:59:10 其他开发

使用 CUDA 进行动态矩阵乘法

我一直在尝试编写的简单程序的想法是从用户那里获取输入,以查看要乘以多大的矩阵. 我希望将输入 x 乘以 x,目前我不希望将两个不同的大小相乘. 你们会建议我如何完成这项工作? 很抱歉我的问题不够清楚,我想修改这个内核,以便它可以处理任何大小的矩阵(其中 x 和 y 是等价的,以保持简单).而不是 16 的倍数. 我不确定您是否需要我当前的代码,但这里是内核代码: //CU ..
发布时间:2022-01-10 15:58:41 其他开发

我可以在 Linux CentOS 6 中安装没有驱动程序的 CUDA(仅 cuda 工具包)

我尝试在 CentOS 6 中安装没有显示驱动程序的 cuda 工具包.它安装正确.我能够编译,但它正在编译而不执行任何操作,并且我在数组加法中得到垃圾值.对于 cudaGetDeviceCount(&count),我得到的值是“o",这意味着我的机器上没有任何卡. 解决方案 无需安装驱动即可安装CUDA工具包. 然后您可以编译使用运行时 API 的 CUDA 代码. 但是,除 ..
发布时间:2022-01-10 15:58:20 服务器开发

CUDA 中 Malloc 函数的效率

我正在尝试将一些 CPU 代码移植到 CUDA.我的 CUDA 卡是基于 Fermi 架构的,因此我可以使用设备中的 malloc() 函数来动态分配内存,并且不需要对原始代码进行大量更改.(malloc() 函数在我的代码中被多次调用.)我的问题是这个 malloc 函数是否足够高效,或者我们应该尽可能避免使用它.我在 CUDA 上运行我的代码并没有得到太多的加速,我怀疑这是由于使用了 mall ..
发布时间:2022-01-10 15:58:13 其他开发

使用 CMake、CUDA 9.0 RC 和 Visual Studio 2017 安装带有 contrib 模块的 OpenCV 3.3.0

我正在尝试使用最新的 CUDA 9.0 RC 安装带有 contrib 模块的 OpenCV 3.3.0,因此它与 Microsoft Visual Studio 2017 兼容.CUDA 安装很简单,并成功集成到 VS 2017 中.我正在按照各种在线说明使我能够在没有 CUDA 的情况下成功构建 contrib 模块. 但是,当我运行 CMake 时(确保将其设置为 VS 2017 x6 ..
发布时间:2022-01-10 15:58:06 C/C++开发

cuda - 零拷贝内存,内存映射文件

我正在尝试创建一个包含 uint32_ts 的映射内存文件,然后将其用作 CUDA 的零拷贝固定内存,如下所示.我在获取设备指针、分配空间并从文件映射内存时得到 cudaErrorInvalidValue.我知道错误消息(来自 API)意味着: 这表明传递给 API 调用的一个或多个参数不在可接受的值范围内. 但我很难弄清楚为什么我会遇到这个问题......有什么想法吗?提前致谢. ..
发布时间:2022-01-10 15:57:51 其他开发

如何为初学者使用常量内存(Cuda C)

我有 3 个常量值(A、B、C)我想保存在常量内存中;我通过输入以下代码行找到了一种方法: //CUDA 全局常量__constant__ int A;__constant__ int B;__constant__ int C;诠释主要(无效){浮动 pA=1;浮动 pB=2;浮动 pC=3;...cudaMemcpyToSymbol(A, &pA, sizeof(A));cudaMemcpyT ..
发布时间:2022-01-10 15:57:44 其他开发

CUDA 设备到设备传输昂贵

我编写了一些代码来尝试交换二维矩阵的象限以用于 FFT,该矩阵存储在平面数组中. int leftover = W-dcW;T *温度;T *上半部分;cudaMalloc((void **)&temp, dcW * sizeof(T));//每行左右交换for(int i = 0; i ..
发布时间:2022-01-10 15:57:35 C/C++开发

使用 nvcc 从 CUDA 创建 DLL

我想从 CUDA 代码 (kernel.cu) 创建一个 .dll,以便从外部 C 程序中使用这个库.经过一些尝试,我只在 .cu 文件中留下了一个简单的 C 函数.代码如下: kernel.cu #include #include “内核.h"无效你好(const char *s){printf("你好 %s\n", s);}/* kernel.h #ifndef ..
发布时间:2022-01-10 15:57:20 其他开发

CUDA 中的固定内存

我在某处读到 CUDA 中的固定内存是稀缺资源.固定内存的上限是多少?在 windows 中,在 linux 中? 解决方案 固定内存只是系统中的物理 RAM,它被预留出来,不允许被操作系统调出.因此,一旦固定,其他进程就无法使用该数量的内存(有效地减少了其他操作系统可用的内存池). 因此,最大可固定内存取决于其他进程(其他应用程序、操作系统本身)正在竞争系统内存.在 Windows ..
发布时间:2022-01-10 15:57:09 其他开发

设备或主机均可调用的 CUDA 函数

我在一些 CUDA 代码中有一个可重用的函数,需要从设备和主机调用.有合适的限定词吗? 例如在这种情况下,func1 的正确定义是什么: int func1 (int a, int b) {返回 a+b;}__global__ devicecode (float *A) {int i = blockDim.x * blockIdx.x + threadIdx.x;A[i] = func1( ..
发布时间:2022-01-10 15:57:03 C/C++开发

什么是“SASS"?短缺?

什么是“SASS"的缩写? 我知道这是针对特定硬件的汇编级本机代码 ISA,在 PTX 代码和二进制代码之间退出.但谁能告诉我每个字符代表什么? 我能找到的关于 Fermi 硬件原生指令的所有信息都在 cuobjdump.pdf 中,但它只给出了它们的名称,我在哪里可以找到更多信息,例如它们的吞吐量或延迟或 IPC 或 CPI,对应于每个指令的承担单位,比如SFU、FPU? 解决 ..
发布时间:2022-01-10 15:56:47 其他开发

CUDA 内核未在 CudaDeviceSynchronize 之前启动

我在并发 CUDA 方面遇到了一些问题.看一下附加的图像.内核在标记点启动,即 0.395 秒.然后是一些绿色的 CpuWork.最后,调用了 cudaDeviceSynchronize.在 CpuWork 之前启动的内核不会在同步调用之前启动.理想情况下,它应该与 CPU 工作并行运行. void KdTreeGpu::traceRaysOnGpuAsync(int firstRayIndex ..
发布时间:2022-01-10 15:56:33 其他开发

我们如何使用 cuPrintf()?

我们必须做什么才能使用 cuPrintf()?(设备计算能力 1.2,Ubuntu 12)我找不到“cuPrintf.cu"和“cudaPrintf.cuh",所以我下载了它们的代码并包含它们: #include "cuPrintf.cuh"#include "cuPrintf.cu" 顺便说一句,这是其余的代码: __global__ void hello_kernel (float f) ..
发布时间:2022-01-10 15:56:17 其他开发

CUDA:在结构内分配结构数组

我有这些结构: typedef 结构神经元{浮动*权重;int n_weights;}神经元;typedef 结构神经层{神经元*神经元;int n_neurons;int act_function;}N层; “NLayer"结构可以包含任意数量的“神经元" 我尝试以这种方式从主机分配一个带有 5 个“神经元"的“NLayer"结构: NLayer* nL;诠释我;国际时间=9;cud ..
发布时间:2022-01-10 15:56:09 其他开发

如何在 Infiniband 中使用 GPUDirect RDMA

我有两台机器.每台机器上有多张特斯拉卡.每台机器上还有一张 InfiniBand 卡.我想通过 InfiniBand 在不同机器上的 GPU 卡之间进行通信.只需点对点单播就可以了.我当然想使用 GPUDirect RDMA,这样我就可以省去额外的复制操作. 我知道 Mellanox 现在提供 驱动程序InfiniBand 卡.但它没有提供详细的开发指南.我也知道 OpenMPI 支持我要求 ..
发布时间:2022-01-10 15:55:59 其他开发