CUDA如何选取Blocks和Threads
Blocks
- 早期的卡,最多支持65535个blocks, 后面的卡最多可以支持 2 31 − 1 = 2147483647 2^{31}-1=2147483647 231−1=2147483647
可以理解为blocks可以随便造,主要是要把threads的大小选好
Threads
- 一般来讲每一个block不能超过512(Compute Capability 1.x)/ 1024(2.x和之后版本)个线程
你电脑不旧的话,一般都是不超过1024
- 每个块的线程数应该是warp size大小的整数倍,在所有当前的硬件上,warp size大小是32。
比如我的电脑:
Device : “GeForce RTX 2080 Ti”
driverVersion : 10010
runtimeVersion : 10000
CUDA Driver Version / Runtime Version 10.1 / 10.0
CUDA Capability Major/Minor version number : 7.5
Total amount of global memory : 10.73 GBytes (11523260416 bytes)
GPU Clock rate : 1545 MHz(1.54 GHz)
Memory Clock rate : 7000 Mhz
Memory Bus Width : 352-bit
L2 Cache Size: 5767168 bytes
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp Size: 32
Maximum number of threads per multiprocessor: 1024
Maximum number of thread per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 2147483647 x 65535 x 65535
一般来讲都是32,你也可以那个用一下代码测试一下:
#include <stdio.h>int main(void) {cudaDeviceProp deviceProp;if (cudaSuccess != cudaGetDeviceProperties(&deviceProp, 0)) {printf("Get device properties failed.\n");return 1;} else {printf("The warp size is %d.\n", deviceProp.warpSize);return 0;}
}
- threads太小(32)或者太大(512)都不好,经验来讲,最好选择128 threads/256 threads 为好
CUDA如何选取Blocks和Threads相关推荐
- 3d稀疏卷积——spconv源码剖析(三)
构建Rulebook 下面看ops.get_indice_pairs,位于:spconv/ops.py 构建Rulebook由ops.get_indice_pairs接口完成 get_indice_p ...
- 计算机视觉-图像缩放算法-cuda实现
一.CUDA CUDA是显卡厂商NVIDIA(英伟达)推出的运算平台,能够将数据数据复制到GPU,在GPU中进行计算,然后再返回给CPU端.CUDA将GPU称为设备侧或者Device,将CPU称为Ho ...
- 适用于CUDA GPU的Numba例子
• 适用于CUDA GPU的Numba例子 矩阵乘法 这是使用CUDA内核的矩阵乘法的简单实现: @cuda.jit def matmul(A, B, C): """Pe ...
- CUDA系列学习(四)Parallel Task类型 与 Memory Allocation
本文为CUDA系列学习第四讲,首先介绍了Parallel communication patterns的几种形式(map, gather, scatter, stencil, transpose), ...
- CUDA系列学习(一)An Introduction to GPU and CUDA
本文从软硬件层面讲一下CUDA的结构,应用,逻辑和接口.分为以下章节: (一).GPU与CPU (二).CUDA硬件层面 (三).CUDA安装 (四).CUDA 结构与接口 4.1 Kernels 4 ...
- CUDA: GPU高性能运算
CUDA: GPU高性能运算 2013-10-11 22:23 5650人阅读 评论(0) 收藏 举报 分类: CUDA(106) 目录(?)[+] 0 序言 CUDA是异构编程的一个大头,洋洋洒洒的 ...
- CUDA编程 -- 2向量加法
本文介绍CUDA环境下两个向量的加法运算.代码运行的系统环境为操作系统Ubuntu 16.04 LTS 64位,CUDA版本7.5,GCC版本5.4.0.项目Github下载地址为:CUDA向量加法G ...
- 自定义 C++ 和 CUDA 扩展
来源 官方文档 前言 PyTorch 提供了大量与神经网络.随机张量代数(arbitrary tensor algebra).数据整合(data wrangling)以及其他目的相关的操作.但是,您仍 ...
- CUDA编程 | Pytorch-CUDA从入门到放弃
作者 | 日知 编辑 | 汽车人 原文链接: https://zhuanlan.zhihu.com/p/46991210 https://zhuanlan.zhihu.com/p/48463543 ...
最新文章
- python爬虫抓取信息_python爬虫爬取网上药品信息并且存入数据库
- torch.argmax()函数
- hashmap为什么用红黑树_全网最全,面试常问的HashMap知识点
- Java ObjectOutputStream writeBytes()方法与示例
- python标准库os中的方法_python中OS常用方法
- 仓库码放要求_仓储管理的全流程SOP操作示范,你们公司仓库管理规范吗?
- java 判断是否包含中文_Java 判断字符串是否包含中文正则表达式
- C++ STL sort 函数的用法(自定义排序函数)
- STM32F103RCT6移植到STM32F103C8T6注意事项
- 探究:数字孪生是如何赋能智慧能源信息化领域系统发展的?
- Android开发 入门篇(一)
- 如何获得哔哩哔哩上下载的教学视频在电脑上看?(bilibili音频视频分离)
- XMind8思维导图 破解版
- Easyui项目之添加购物车、清空购物车
- 二维数组的几种定义方法
- 海康威视产品的token更新
- CE-扫描扫雷中雷区地址
- 基于角膜反射的学习心得
- 如何用迅雷下载python_用Python调用迅雷批量下载excel表内的链接,并同时对文件重命名(使用的是openpyxl)...
- 二进制 算法相关的题目