cuda相关内容

使用 CUDA Thrust 多次复制向量

我正在尝试使用 CUDA Thrust 解决问题. 我有一个包含 3 元素的主机数组.是否可以使用 Thrust 创建一个包含 384 元素的设备数组,其中我的主机数组中的 3 元素重复 128 次(128 x 3 = 384)? 一般来说,从3个元素的数组开始,如何使用Thrust生成一个X大小的设备数组,其中X = Y x3,即Y是重复次数? 解决方案 一种可能的方法: ..
发布时间:2022-01-10 15:55:50 其他开发

将指针数组复制到设备内存并返回(CUDA)

我正在尝试在我的玩具示例中使用 cublas 函数 cublasSgemmBatched.在本例中,我首先分配二维数组:h_AA, h_BB 大小为 [6][5] 和 h_CC 的大小为 [6][1].之后我将它复制到设备,执行 cublasSgemmBatched 并尝试将数组 d_CC 复制回主机数组 h_CC.但是,我在设备到主机复制时遇到错误 (cudaErrorLaunchFailure ..
发布时间:2022-01-10 15:55:34 其他开发

CPU 和 GPU 中的 SVD 速度

我在 Matlab R2014a 中测试 svd 似乎没有 CPU vs GPU 加速.我正在使用 GTX 460 卡和 Core 2 duo E8500. 这是我的代码: %test SVDn=10000;%主持人Mh=兰特(n,1000);抽动%[Uh,Sh,Vh]= svd(Mh);svd(兆赫);目录%设备Md = gpuArray.rand(n,1000);抽动%[Ud,Sd,V ..
发布时间:2022-01-10 15:55:26 其他开发

阿姆达尔定律和 GPU

我对阿姆达尔定律在 GPU 上的应用有一些疑问.例如,我有一个内核代码,我使用多个线程启动,比如 N.那么,在阿姆达尔定律中,处理器的数量将是 N 对吗?此外,对于使用大量线程的任何 CUDA 编程,我可以安全地假设 Amdahl 定律减少到 1/(1-p) 其中 p 代表并行代码吗?谢谢 解决方案 例如,我有一个带有数字的内核代码线程数,比如 N.所以,在阿姆达尔定律中,处理器的数量 ..
发布时间:2022-01-10 15:55:16 其他开发

CUDA Visual Profiler 'Interactive' X 配置选项?

在 Ubuntu 11.04 上的 computeprof 中启动应用程序时收到以下警告: 所选计数器“gld 指令 8 位"、“gld 指令 16 位"、“gld 指令 32 位"、“gld 指令 64 位"、“gld 指令 128 位"、“gst 指令 8 位"、“gst 指令 16 位"、“gst 指令 32 位"、“gst 指令 64 位"、“gst 指令 128 位"可能会导致 G ..
发布时间:2022-01-10 15:55:09 其他开发

为 nvcc 设置默认主机编译器

我刚刚在新的 GPU 服务器上安装了 Debian Stretch (9) 和 Cuda 8.Stretch 不附带旧版本的 gcc,所以我需要使用 clang 作为宿主编译器(nvcc 不支持 gcc-6).我可以通过以下方式调用 nvcc: nvcc -ccbin clang-3.8 有什么方法可以在整个系统范围内实现 - 例如在 cuda 配置或环境变量中? 解决方案 nvcc的 ..
发布时间:2022-01-10 15:55:02 其他开发

如何使用软件实现在没有 GPU 的情况下运行 CUDA?

我的笔记本电脑没有 nVidia 显卡,我想在 CUDA 上工作.该网站说 CUDA 也可以在非 cuda 硬件上以仿真模式使用.但是当我尝试安装从他们的网站下载的 CUDA 驱动程序时,它给出了一个错误“nvidia 安装程序找不到与您当前硬件兼容的任何驱动程序.安装程序现在将退出". 当我尝试在 Visual Studio 2008 中从 SDK 运行示例代码时,我收到一个错误,即找不到 ..
发布时间:2022-01-10 15:54:51 其他开发

使用 CUDA 减少矩阵列

我有一个矩阵,我想使用 CUDA 并以最快的方式计算列平均值(归结为简单的总和),即返回一个行向量,其中包含其中每一列的平均值矩阵.用于计算单个列向量之和的求和实现如下所示: template__global__ void kernelSum(const T* __restrict__ input, T* __restrict__ per_block_results, const size_t ..
发布时间:2022-01-10 15:54:44 C/C++开发

让 CUDA Thrust 使用您选择的 CUDA 流

查看 CUDA Thrust 代码中的内核启动,似乎它们总是使用默认流.我可以让 Thrust 使用我选择的流吗?我是否遗漏了 API 中的某些内容? 解决方案 我想在 Thrust 1.8 发布后更新 talonmies 提供的答案,它引入了将 CUDA 执行流指示为的可能性 thrust::cuda::par.on(stream) 另见 推力发布 1.8.0. 在下面, ..
发布时间:2022-01-10 15:54:29 其他开发

快速 CUDA 推力自定义比较运算符

我正在评估 CUDA,目前正在使用 Thrust 库对数字进行排序. 我想为推力::排序创建自己的比较器,但它的速度大大减慢!我通过从 functional.h 复制代码创建了自己的 less 实现.但是,它似乎以其他方式编译并且运行速度非常慢. 默认比较器:thrust::less() - 94ms 我自己的比较器:less() - 906ms 我使用的是 Visual St ..
发布时间:2022-01-10 15:54:21 其他开发

CUDA - 通过 PCI-E 传输的速度有多慢?

如果我将单个字节从 CUDA 内核传输到 PCI-E 到主机(零拷贝内存),与传输 200 兆字节的数据相比,它的速度要慢多少? 我想知道,因为我知道通过 PCI-E 传输对于 CUDA 内核来说很慢,所以我想知道的是:如果我只传输一个字节或大量数据,它会改变什么吗?或者可能由于内存传输是“批量"执行的,传输单个字节相对于传输 200 MB 而言非常昂贵且无用? 解决方案 希望这张图 ..
发布时间:2022-01-10 15:54:11 其他开发

cuda 5.0支持的c++版本

我找不到 CUDA 5.0 支持哪个版本/哪个 c++ 概念.我在 CUDA 5.0 RC 随附的编程指南或参考指南中找不到任何信息.特别是我想知道 CUDA 5.0 是否支持 C++11.有人能指点我一个地方来查找这些信息吗? 解决方案 不支持 gcc 4.7 所以 一些 c++11 功能不可用: - 非静态数据成员初始化器- 模板别名:(- 委托构造函数- 用户定义的文字- 扩展朋友 ..
发布时间:2022-01-10 15:54:03 C/C++开发

仅在 GPU 上求解小型对称正定 Ax = b

我正在尝试优化实时 3D 建模中的应用程序.应用程序的计算部分几乎完全在 CUDA 的 GPU 上运行.该应用程序需要每秒 500+ 次的小型 (6x6) 双精度对称正定线性系统 Ax = b 的求解.目前,这是通过使用 Cholesky 的基于 CPU 的高效线性代数库完成的,但需要每秒数百次从 CPU - GPU 复制数据并返回到 GPU 以及每次内核启动的开销等. 如何仅在 GPU 上 ..
发布时间:2022-01-10 15:53:54 其他开发

使用 CUDA Thrust 确定每个矩阵列中的最小元素及其位置

我有一个相当简单的问题,但我想不出一个优雅的解决方案. 我有一个 Thrust 代码,它生成包含值的相同大小的 c 向量.假设这些 c 向量中的每一个都有一个索引.我想为每个向量位置获取值最低的 c 向量的索引: 例子: C0 = (0,10,20,3,40)C1 = (1,2 ,3 ,5,10) 我会得到一个包含 C 向量索引的向量,该向量具有最低值: 结果 = (0,1 ,1 ..
发布时间:2022-01-10 15:53:44 C/C++开发

增加 CUDA 中每个线程的工作量的示例

算法: 我正在用 CUDA 编写程序,问题如下: 两个矩阵 A (n * 128) 和 B (m * 128) 我取 A 的第一行,并逐一计算该向量与 B 的所有行之间的距离. 我把每个距离的结果写在矩阵C的一行上,所以C的元素C(i,j)包含了A的i行和B的j行的距离. 然后我继续 A 的下一行. 我是这样实现的:我有一个由 (n * m) 个块组成的网格,每 ..
发布时间:2022-01-10 15:53:19 C/C++开发

模板 __host__ __device__ 调用主机定义的函数

在 CUDA 代码的实现过程中,我经常需要一些实用函数,这些函数可以从设备调用,也可以从主机代码调用.所以我将这些函数声明为 __host__ __device__.这没关系,#ifdef CUDA_ARCH 可以处理可能的设备/主机不兼容问题. 当效用函数被模板化时,问题就来了.通过某种函子类型.如果模板实例调用 __host__ 函数,我会收到以下警告: 不允许从 __host__ _ ..
发布时间:2022-01-10 15:53:11 其他开发

分支和谓词指令

第 5.4.2 节 声明分支分歧由“分支指令"或在某些条件下“谓词指令"处理.我不明白两者之间的区别,以及为什么一个比另一个带来更好的性能. 此评论表明分支指令会导致更多执行指令的数量,由于“分支地址解析和获取"而停止,以及由于“分支本身"和“为分歧而记账"导致的开销,而谓词指令仅导致“进行条件测试和设置的指令执行延迟"谓词".为什么? 解决方案 指令谓词是指一条指令由一个线程根据谓 ..
发布时间:2022-01-10 15:53:02 其他开发

CUDA 版本 X 抱怨不支持 gcc 版本 Y - 怎么办?

问题是关于版本的特定组合,但更普遍. 我刚刚从 Kubuntu 12.04 升级到 14.04.现在,当我想编译 CUDA 代码(使用 CUDA 6.5)时,我得到: #error -- 不支持的 GNU 版本!不支持 gcc 4.9 及更高版本! 我安装了 gcc-4.8(和 4.7),并尝试使用此处建议的 symlinks-in-/usr/local/cuda/bin 解决方案: ..
发布时间:2022-01-10 15:52:55 其他开发