cuda相关内容
我想添加带有进位的 128 位向量.我的 128 位版本(下面代码中的 addKernel128)比基本 32 位版本(下面的 addKernel32)慢两倍.我有内存合并问题吗?如何获得更好的性能? #include "cuda_runtime.h"#include "device_launch_parameters.h"#include #define UADDO(c,
..
我目前在 VS 2013 下使用 CUDA 7.5.今天我需要从 device_vector 中删除一些元素,因此决定使用 remove_if.但是无论我修改代码,程序编译得很好,但在运行时抛出“thrust::system::system_error". 首先我尝试了自己的代码: int main(){推力::host_vectorAA(10, 1);推力::序列(AA.beg
..
希望您能帮我找出下面这张卡片所需的正确编译器选项: >./deviceQuery 开始...>>CUDA 设备查询(运行时 API)版本(CUDART 静态链接)>>检测到 1 个支持 CUDA 的设备>>设备 0:“GeForce GTX 780 Ti">CUDA 驱动程序版本/运行时版本 7.0/6.5>CUDA 能力主要/次要版本号:3.5>全局内存总量:3072 MBytes (3220
..
我需要使用 NVidia CUBLAS 计算复数的两个向量(Hadamard 乘积)的元素乘法.不幸的是,CUBLAS 中没有 HAD 操作.显然,您可以使用 SBMV 操作来做到这一点,但在 CUBLAS 中它没有实现复数.我不敢相信 CUBLAS 无法实现这一目标.对于复数,还有其他方法可以使用 CUBLAS 实现吗? 我无法编写自己的内核,我必须使用 CUBLAS(或其他标准 NVID
..
我在划分为多个 GPU 的块 (N*N/p) 上运行 CUFFT,我对计算性能有疑问.首先,关于我是如何做到的: 向每个 GPU 发送 N*N/p 个块 对 p 个 GPU 中的每一行进行批量 1-D FFT 将 N*N/p 个块返回主机 - 对整个数据集执行转置 同上步骤 1 同上第 2 步 Gflops = ( 1e-9 * 5 * N * N *lg(N*N) )/执行时
..
我有一个基类: 模板A类{上市://一些数据T数据;//一些函数,如构造等...//一个虚函数虚拟无效评估()= 0;} 还有一个派生类: 模板B类:公共A{上市://一些函数,如构造函数等虚空评估();__global__ 无效函数2();//**** 错误信息} 还有,我有 模板空白B::evaluate(){d
..
我正在编写代码来使用点积的 CUBLAS 例程计算两个向量的点积,但它返回主机内存中的值.我只想使用点积在 GPGPU 上进行进一步计算.如何使值仅驻留在 GPGPU 上并将其用于进一步计算,而无需从 CPU 到 GPGPU 进行显式复制? 解决方案 你不能完全使用 CUBLAS. 根据 talonmies 的回答,从 CUBLAS V2 api (CUDA 4.0) 开始返回值可以是设备
..
具体来说,我的问题是我的 CUDA 代码需要 才能运行.默认情况下,这不包含在 NVRTC 中.大概在创建程序上下文时(即调用nvrtcCreateProgram),我必须发送文件名(curand_kernel.h)以及源代码curand_kernel.h?我觉得我不应该这样做. 很难说;我还没有设法从 NVIDIA 找到一个需要像这样的标准 CUDA 文
..
在 cuBLAS 中,cublasIsamin() 给出单精度数组的 argmin. 这是完整的函数声明: cublasStatus_t cublasIsamin(cublasHandle_t handle, int n,const float *x, int incx, int *result) cuBLAS 程序员指南提供了有关 cublasIsamin() 参数的信息: 如
..
我有以下琐碎的thrust::gather 程序(直接取自thrust::gather 文档) #include #include 诠释主要(无效){//用 1 标记偶数索引;带有 0 的奇数索引整数值[10] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0};推力::device_vector
..
当我开始 cuda 调试时,Nsight 返回这个错误: 在当前不可调试的 GPU 上创建了 CUDA 上下文.断点将被禁用. 适配器:GeForce GT 720M 这是我的系统和 CUDA 信息. 请注意,已安装最新版本的 CUDA 和 Nsight. 我搜索了这个问题,但找不到我的答案.非常感谢. 报告信息UnixTime 生成 1490538033操作系统信
..
问题来自我在文档中找到了两个函数exp 和expf.据说exp表示double exp(double),expf表示float expf(float).我想知道 exp 是否可以具有默认覆盖版本,例如 float exp(float) 或 fp16 exp(fp16).或者当输入是不同的类型时我必须使用不同的功能吗? 考虑一个我使用模板的场景: 模板T 计算 (T
..
我正在寻找一种在没有 NVIDIA GPU 的系统上运行 CUDA 程序的方法. 我尝试安装 MCUDA 和 gpuOcelot,但安装时似乎遇到了一些问题. 我已经阅读了 如何使用软件实现在没有 GPU 的情况下运行 CUDA?.那里的答案建议更改系统的硬件,使用模拟器(现已弃用)或切换到 OpenCL.这些都不能充分满足我的要求 解决方案 CUDA 是 NVIDIA 专有技
..
我是 CUDA 的新手,感谢您的帮助,希望您能帮助我. 我需要将二维数组的多个元素存储到一个向量中,然后对向量进行处理,但是我的代码效果不好,调试的时候发现在设备中用cudaMallocPitch 并使用 cudaMemcpy2D 复制到该数组.这是我的代码: #include #include #include #incl
..
阅读以下问题及其答案后 链接 我的脑海里还有一个问题.来自我的 C/C++ 背景;我知道使用 volatile 有它的缺点.并且在答案中还指出,在 CUDA 的情况下,如果不使用 volatile 关键字,优化可以用寄存器替换共享数组以保存数据. 我想知道在计算(总和)减少时会遇到哪些性能问题.例如 __device__ void sum(volatile int *s_data,
..
我是 LLVM 新手.听说clang支持CUDA.如何使用 clang 编译 CUDA?我是否必须进行一些配置更改或包含任何特定的头文件?我在网上找不到有关此的任何信息.有可能吗? 现在,当我尝试使用 clang as 编译一个虚拟 cuda 程序时 clang -I/usr/local/cuda/include 文件名.cu 我收到以下错误 未知类型名称 '__global__'_
..
我正在尝试修改 CUDA SDK 中的 imageDenosing 类,我需要多次重复过滤器以捕获时间.但是我的代码不能正常工作. //开始 __global__ void F1D(TColor *image,int imageW,int imageH, TColor *buffer){常量 int ix = blockDim.x * blockIdx.x + threadIdx.x;常量
..
我正在使用 pyCUDA 进行 CUDA 编程.我需要在内核函数中使用随机数.CURAND 库在其中不起作用(pyCUDA).由于 GPU 有很多工作要做,在 CPU 内部生成随机数然后将它们传输到 GPU 是行不通的,反而消解了使用 GPU 的动机. 补充问题: 有没有办法使用 1 个块和 1 个线程在 GPU 上分配内存. 我正在使用多个内核.我需要使用多个 SourceModu
..
我在带有 CUDA 5 的 Linux 上使用计算能力为 35 的 tesla k20.通过一个简单的子内核调用,它会给出一个编译错误:Unresolved extern function cudaLaunchDevice 我的命令行如下所示: nvcc --compile -G -O0 -g -gencode arch=compute_35 , code=sm_35 -x cu -o f
..
我最近在家里的机器上安装了第二个 GPU (Tesla K40),我的搜索表明第一个 PCI 插槽成为为 CUDA 作业选择的默认 GPU.一个很好的链接解释它可以在这里找到: 默认 GPU 分配 我原来的 GPU 是 TITAN X,也启用了 CUDA,但它确实最适合单精度计算,而 Tesla 更适合双精度.我对小组的问题是,是否有办法将我的默认 CUDA 编程设备设置为始终是第二个
..