gpu相关内容
我有GeForce GTX460 SE,所以它是:6 SM x 48 CUDA内核= 288 CUDA内核。 已知在一个Warp中包含32个线程,并且在一个块中同时(一次)只能执行一个Warp。 也就是说,在单个多处理器(SM)中只能同时执行一个Block,一个Warp和只有32个线程,即使有48个内核可用吗? 此外,分发具体线程和块的示例可以使用threadIdx.x和blockIdx
..
您的CPU可能是四核,但是你知道一些显卡目前有超过200个内核吗?我们已经看到了当今图形卡的GPU可以做什么,当谈到图形。现在他们也可以用于非图形任务,在我看来,结果是什么没有惊人的。一个适合并行处理的算法在GPU上的速度比CPU上的速度要快得多。 有几种技术使所有这一切成为可能: 1。) CUDA 。它似乎是最知名和有据可查的。不幸的是,它只能在NVidia显卡上工作。我已经下载了S
..
目前的GPU线程以某种方式受到限制(内存限制,数据结构的限制,没有递归...)。 您认为在GPU上实现图论理论问题是否可行。例如顶点覆盖?主导集?独立集? max clique?.... 是否也可以在GPU上使用分支绑定算法?递归回溯? 解决方案 您将对感兴趣 使用并行图算法探索GPU的限制 使用CUDA 在GPU上加速大图形算法 。
..
我在使用“fujitsu”机器。它安装了2个GPU:Quadro 2000和Tesla C2075。 Quadro GPU有1 GB RAM,而Tesla GPU有5GB。 (我使用nvidia-smi -q的输出检查)。当我运行nvidia-smi时,输出显示2个GPU,但特斯拉显示器显示为off。 我运行一个内存密集型程序,并希望使用5 GB的RAM可用,但每当我运行一个程序,似乎使用Qua
..
我想运行一个cuda程序,但我是一个初学者。我必须为直方图编写程序。 但是用桶。根据maxValue(示例中为40),该数字将添加到相应的存储桶。如果我们有4个bucket: histo:| 1 | 10 | 30 | 39 | 32 | 2 | 4 | 5 | 1 | 0-9(第1个桶) 10-19 20-29(第3个桶) 30-39(第4个桶) 我的GPU
..
如何实现以下链接中提供的代码版本7: http:/ /www.cuvilib.com/Reduction.pdf 用于大小为任意数字的输入数组,换句话说,不是2的乘方? ,您应该查看相关NVIDIA CUDA的链接减少示例。它基本上包括您正在使用的pdf文件,但也包括实现减少1到7(标记为 reduce0 到 reduce6 ) 如果你研究文档中的reduce 7的描述,你会看到初
..
我需要计算复数的两个向量(Hadamard乘积)与NVidia CUBLAS的元素方式乘法。不幸的是,CUBLAS中没有HAD操作。显然,您可以使用SBMV操作执行此操作,但它不能实现CUBLAS中的复数。我不能相信有没有办法实现这个与CUBLAS。有没有其他方法来实现CUBLAS,对于复数? 我不能编写自己的内核,我必须使用CUBLAS(或者另一个标准的NVIDIA库,如果它真的不可能与C
..
我想知道是否可以设置CUDA应用程序的最大GPU资源?例如,如果我有一个4GB的GPU,但想要一个给定的应用程序只能够访问2GB它,如果尝试分配更多的失败。 要么在进程级别上设置,要么在CUDA上下文级别上设置。 解决方案 不,目前没有允许这种资源管理的API,进程或驱动程序控制。 >
..
我的程序是奇数甚至合并排序,它不工作超过1024个线程。 我已经尝试将块大小增加到100,但它仍然不能工作超过1024个线程。 我使用 Visual Studio 2012 ,我有 Nvidia Geforce 610M 。这是我的程序 #include #include #include #include
..
我正在研究如何将每行的可变宽度的2D数组复制到GPU中。 int rows = 1000; int cols; int ** host_matrix = malloc(sizeof(* int)* rows); int * d_array; int * length; ... 每个 host_matrix [i ] 可能有不同的长度,我知道 len
..
我有兴趣获得在GeForce GTX 550 Ti上执行1次双精度FLOP所需的纳秒数。 为了做到这一点,我采用了这种方法:我发现卡的单精度峰值性能是691.2 GFLOPS,这意味着双精度峰值性能为1/8,即86.4GFLOPS。然后为了获得每个核的FLOPS,我将86.4 GFLOPS除以核的数量192,这给出每个核0.45GFLOPS。 0.45 GFLOPS是指每个纳米每个核心0.4
..
我使用cudaMemcpyPeerAsync()从gpu0到gpu1执行异步memcpy。 cudaMemcpyAsync()为gpu0提供流选项,但不提供gpu1。我可以以某种方式定义接收设备的流吗? 我使用OpenMP线程来管理每个设备(因此,它们在不同的上下文中)。 Visual Profiler显示发送设备的流,但是接收设备的流,这个memcpy只显示在MemCpy(Pt
..
与CUDA一样,最基本的东西有时是最难的... 所以...我只想将一个变量从CPU复制到 这是我所拥有的: __ constant__ int contadorlinhasx_d; int main(){ (...) int contadorlinhasx = 100; status = cudaMemcpyToSymbol(contadorlinhasx_d
..
我试图在 __ device __ 变量上应用内核函数,根据规范,它驻留在“全局内存” #include #include“sys_data.h” #include“my_helper.cuh” #include“helper_cuda.h” #include double X [10] = {1,-2,3,-4,
..
在cuBLAS中, cublasIsamin()给出了单精度数组的argmin。 这是完整的函数声明: cublasStatus_t cublasIsamin(cublasHandle_t handle,int n, const float * x,int incx,int *结果) cuBLAS程序员指南提供了有关 cublasIsamin()参数的信息: 如果我对 resu
..
我在GPU上使用[PTX文件与matlab parallel.gpu.CUDAkernel] [2]我的问题[kron张量产品] [3]在我的代码它应该乘以两个通过将第一向量 a = 的每个元素乘以所有的向量 kron(a,b)其他向量的元素 b = ,输出向量大小将为 k = a。* b ,我试图写它在CPP和它的工作,因为我只关心的所有元素的2d数组,我想我可以使它容易作为一维数组,因为 m
..
我有以下代码,我想使用nvcc编译。 代码: #include #include #include #include int main(void) { size_t n = 100; size_t i; int * hostData; unsigned int * d
..
clock()不够准确。 解决方案 使用CUDA事件来测量内核或CUDA操作): //准备 cudaEvent_t start,stop; cudaEventCreate(& start); cudaEventCreate(& stop); //开始记录 cudaEventRecord(start,0); //在GPU上做某些事情 MyKernel
..
我想编译一个有人送给我的cuda项目。虽然编译阶段通过,链接阶段失败。下面是错误的示例: 错误298错误LNK2005:“int __cdecl compare_ints(void const *,void const *) “已经在3level_1.cu.obj decode_p4.cu.obj中定义的(?compare_ints @@ YAHPBX0 @ Z) 基本上,文
..
我需要在GPU上使用CUDA来实现矩阵乘法,用于大矩阵。每个矩阵的尺寸单独大于GPU内存。所以我想我需要一个算法来有效地做到这一点。我去了互联网,但没有找到任何。任何人都可以给我这种算法的名称或链接。 谢谢 解决方案 这里没有真正的正式算法;通常,这些类型的线性代数运算,其中整个问题没有同时存储在存储器中被称为“非核心”操作。 为了解决它,你不需要一个特别复杂的算法,只是CUB
..