1 每个SM上面失少要有192个激活线程,寄存器写后读的数据依赖才能被掩盖
 
2 将 寄存器 的bank冲突降到最低,应尽量使每个block含有的线程数是64的倍数
 
3 block的数量应设置得令可用的计算资源被充分的利用。由于每个block映射到一个sm上面,所以至少应该让block的数目跟sm的数目一样多。
 
4 当Block中的线程被同步时或者等待读取设备存储器时,相应的SM会闲置。通常让block的数目是sm的2倍以上,使其在时间轴上重叠
 
5 如果block的数目足够多,则每个Block里的线程数应设置成warp尺寸的整数倍,以免过小的warp浪费计算资源。
 
6 给每个block分配越多的线程,能更高效的让他们在时间片上工作。但是相应的每个线程的寄存器也就越少。当寄存器过少,有可能因为访问溢出的寄存器,而导致数据的存储变慢。
 
7 当每个线程占用的寄存器较多时,不宜在Block内分配过多的线程,否则也会减少block的数目。从而使SM的工作效率降低
 
8 每个block内的线程数应遵循 相应的 计算能力等级中的规定数目。
 
原文来自《GPGPU编程技术--从GLSL、CUDA到OPENCL》

最优的cuda线程配置的更多相关文章

  1. CUDA ---- 线程配置

    前言 线程的组织形式对程序的性能影响是至关重要的,本篇博文主要以下面一种情况来介绍线程组织形式: 2D grid 2D block 线程索引 矩阵在memory中是row-major线性存储的: 在k ...

  2. GPU编程自学2 —— CUDA环境配置

    深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...

  3. Tomcat 内存和线程配置优化

    1. tomcat 的线程配置参数详情如下: 修改conf/server.xml中的<Connector .../> 节点如下: <Connector port="8080 ...

  4. 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)

    配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...

  5. 【深度学习】在linux和windows下anaconda+pycharm+tensorflow+cuda的配置

    在linux和windows下anaconda+pycharm+tensorflow+cuda的配置 在linux和windows下anaconda+pycharm+tensorflow+cuda的配 ...

  6. 【JVM】调优笔记3-----JVM参数配置 JDK1.8

    一.关于JVM参数配置,有多种途径. 1.在tomcat中直接配置的 打开tomcat的安装目录, 在bin下修改catalina.bat文件 添加如下: set "JAVA_OPTS=-X ...

  7. JVM调优 jdk版本 机器配置 建议jvm参数 备注

    https://juejin.im/post/5b091ee35188253892389683 大型跨境电商JVM调优经历 前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的 ...

  8. OpenCV GPU CUDA OpenCL 配置

    首先,正确安装OpenCV,并且通过测试. 我理解GPU的环境配置由3个主要步骤构成. 1. 生成关联文件,即makefile或工程文件 2. 编译生成与使用硬件相关的库文件,包括动态.静态库文件. ...

  9. CUDA学习笔记(二)——CUDA线程模型

    转自:http://blog.sina.com.cn/s/blog_48b9e1f90100fm5b.html 一个grid中的所有线程执行相同的内核函数,通过坐标进行区分.这些线程有两级的坐标,bl ...

随机推荐

  1. java代码输出1到100的质数

    总结:循环,循环.. package com.dfd; import java.util.Scanner; //输出0到100的质数 //要判断当到100时候,等于2的直接输出,能被2整除的不输出, ...

  2. mybatis---demo1--(n-n)----bai

    实体类1: package com.etc.entity; import java.util.List; public class RoleInfo { private int rid; privat ...

  3. 第四章 Javac编译原理(待续)

    Javac是什么 Javac编译器的基本结构 Javac工作原理分析 设计模式解析之访问者模式

  4. list array解析(总算清楚一点了)

    # -*- coding: utf-8 -*- """ Created on Tue Aug 09 23:04:51 2016 @author: Administrato ...

  5. 用UltraISO把硬盘文件制作成ISO格式

    转自:https://wenku.baidu.com/view/0052c88dcc22bcd126ff0cbf.html 用UltraISO把硬盘文件制作成ISO格式方法: 制作硬盘ISO文件步骤一 ...

  6. 部署和调优 3.1 dns安装配置-1

    安装配置DNS服务器 装一个bind,首先搜一下. yum list |grep bind bind.x86_64   我们安装这个 安装 yum install bind.x86_64 -y 看一下 ...

  7. java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    执行Hive查询: Console是这样报错的 java.sql.SQLException: Error from org.apache.hadoop.hive.ql.exec.mr.MapRedTa ...

  8. 使用/dev/dsp的wav文件播放器源码

    转载于:http://blog.csdn.net/dux003/article/details/5459423 #include #include #include #include #include ...

  9. ionic 页面乱码

    是文本编辑器的问题.文本编辑器保存时默认保存成Encoding:ANSI编码格式,保存成utf-8就好了

  10. Python 网络爬虫 005 (编程) 如何编写一个可以 下载(或叫:爬取)一个网页 的网络爬虫

    如何编写一个可以 下载(或叫:爬取)一个网页 的网络爬虫 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:P ...