CUDA——GPU参数获取
来源:互联网 发布:www.226bbb.com新域名 编辑:程序博客网 时间:2024/06/05 10:45
一.介绍
GPU的参数可以由多种途径获取:
1.
2.
3.
二.GT750参数——deviceQuery
在CUDA编程初期比较重要的几个参数有:
1.
CUDA的有些函数会对计算能力有要求,计算能力肯定越高越好
2.
也就是显卡显存大小,直接决定了可以运算数据的大小。在Matlab中,当计算量太大是会有memoryout。同样CUDA编程中显存的大小也会限制数据量的大小。一般处理都够用,数据太大就要考虑集群了。
3.
在新的Kepler架构中只的是SMX(StreamMultiprocessor eXtreme)的个数,对应以前的Fermi等架构中SM(StreamMultiprocessor)。
从名称可以看出,SMX是SM的加强版,最显著的区别就是SMX中的CUDAcore显著增加,由SM时代的32个到了SMX时代的192个。
4.
线程块中的线程个数就是调用kernel函数时定义的Block中元素的个数。
在我的GT750M中一个线程块中的最大线程数为1024,因此我一般分配的块大小为(32*32)。
5.
由于线程对共享内存的访问速度比访问显存的速度快得多,因此很多时候
会考虑使用共享内存。例如:矩阵乘法的实现。
GPU信息
三.GT750参数——GPU-Z
1.
2.
就是我们通常说的CUDA core的数目。由于CT750M有两个SMX组成,每个
SMX上有192个CUDAcore,所以总共有384个CUDAcore。
同样的,GTX 680有8个SMX,每个SMX上有192个CUDAcore,所以总共有192*8=1536个CUDAcore。
3.
显存大小,也就是共享内存大小。
GPU-Z信息
四.GT750M参数——CUDA-Z
1.
每个SMX的线程数,此处是2048,两个SMX就是4096。所以GT750M每次
最多并行执行的线程数为4096。
换句话说,CUDA程序中的线程并非完全并行进行的,比如要执行8192个线程,实际上是分两次执行完的。只不过直接交给GPU了,我们就不用管了。
2.
就是SMX的个数,括号内的384就是通常所说的CUDAcore个数。
五.总结
1.
2.
3.
程,也就是说至少为每个线程块分配2048/8=256=16*16个线程才能保证线程被充分使用。然而,又要求每个线程块最多有1024=32*32个线程,所以至少要分配两个线程块。也就是说至少两个线程块在工作,这也是相对来说比较合理的。
4.
由于不太了解core与线程的关系,所以一直没体会到core个数的用处。总之
越多越好。
5.
这个参数对程序的效率也有挺大影响的。
- CUDA——GPU参数获取
- gpu cuda部分参数学习
- CUDA中GPU信息获取
- GPU编程自学4 —— CUDA核函数运行参数
- GPU编程—cuda并行机制
- CUDA—使用GPU暴力破解密码
- CUDA入门2——获取显卡参数
- 通过cuda获取GPU的信息
- CUDA/ GPU: CUDA核函数的运行参数
- 【GPU开发笔记】一:CUDA初探——环境配置
- 【GPU开发笔记】二:CUDA初探——查询设备
- GPU编程之CUDA(一)——入门知识
- GPU编程之CUDA(二)——配置方法
- windows下搭建CUDA开发环境——GPU编程
- CUDA编程——Mars:MapReduce on GPU
- GPU编程——CUDA在VS2010下环境搭建
- windows下搭建CUDA开发环境——GPU编程
- GPU编程自学2 —— CUDA环境配置
- python 学习
- CUDA 程序优化
- CUDA 测时
- cudaMallocPitch 和 cudaMemcpy2D
- CUDA中GPU信息获取
- CUDA——GPU参数获取
- java动态代理
- cublas的配置使用
- CUDA函数错误判断
- Matlab+CUDA混合编程(一)
- Accelerating MATLAB wi…
- 文本编辑工具vim
- csdn i am coming
- 小波变换学习资料总结