§1 个 multiprocessor <-> 1个instruction unit  <-> 8 个processor  <-> 在一个warp中执行  <-> 32条threads

1个processor处理1条thread,所以1个warp在1个multiprocessor中需要4个clock cycles执行完成;

1个multiprocessor可以处理多个block,但是一个block只能放在一个multiprocessor中;

一个block里头有shared memory,这些shared memory分成16个banks,刚好让half-warp (一个warp有32条threads)操作。当多条processor同时要同一个bank里头的数据时,bank会broadcast,让这些thread排队,这其实是sequential的,就与CPU没有区别,没有了GPU的优点,所以要尽量避免这种情况发生。

一个processor一次只能处理一条thread,之所以比CPU快,是因为GPU有多个processor。

coalescing:global memory transactions (基本单位 half-warp:16条threads)

的时候,第一条thread对应的address必须是64bytes的倍数,然后之后31条threads 一一对应,只有这样才能批量的global memory transaction,否则thread就要一条一条做global memory transaction,效率很低。

úEach active thread is allocated some registers for the entire lifetime of the thread
úEach active block is allocated shared memory for the entire lifetime of the block
 
§Very fast on-chip memory
§Can be used to avoid non-coalesced global memory accesses
§Can be used to reduce global memory accesses
§
§Shared memory is organized into 16 banks, where successive 4-byte words are assigned to successive banks
§Memory load or store of n addresses by a half-warp that span n distinct memory banks can be serviced simultaneously
§If multiple addresses map to the same memory bank, the accesses are serialized
§If multiple requests for the same memory address, a broadcast occurs
 
同一个block中的threads共用shared memory,同一个block中的thread才能进行__syncthreads()。这个是shared memory的概念。global memory有thread的概念,但是没有block的概念,即没有将thread组织成block,让同一个block中的thread相互协作。
Shared memory is organized into 16 banks
 
在device的code中,如果是unqualified的变量是register memory的。
 
 

GPU基本概念详解的更多相关文章

  1. GPU虚拟化技术详解

    GPU虚拟化技术详解 GPU英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,1999年由NVIDIA公司提出. 一.GPU概述 GPU这一概念也是相对于计算 ...

  2. Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  3. (转)Win10 TensorFlow(gpu)安装详解

    Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...

  4. JWT基础概念详解

    JWT基础概念详解 JWT介绍 之前我们文章讲过分布式session如何存储,其中就讲到过Token.JWT.首先,我们来回顾一下使用Token进行身份认证. 客户端发送登录请求到服务器 服务器在用户 ...

  5. java入门---对象和类&概念详解&实例

        Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载     这篇文章,我们主要来看下: 对象:对象是类的一个实例(对象不是找个女朋友),有状态 ...

  6. Android屏幕密度(Density)和分辨率概念详解

    移动设备有大有小,那么如何适应不同屏幕呢,这给我们编程人员造成了很多困惑.我也是突然想到这些问题,然后去网上搜搜相关东西,整理如下.   首先,对下面这些长度单位必须了解. Android中的长度单位 ...

  7. Storm 学习之路(二)—— Storm核心概念详解

    一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的Storm流处理程序被称为Storm topology(拓扑).它是一个是由Spouts 和Bolts通过Stream连接起来的 ...

  8. Storm 系列(二)—— Storm 核心概念详解

    一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的 Storm 流处理程序被称为 Storm topology(拓扑).它是一个是由 Spouts 和 Bolts 通过 Stre ...

  9. 图像处理术语解释:灰度、色相、饱和度、亮度、明度、阿尔法通道、HSL、HSV、RGBA、ARGB和PRGBA以及Premultiplied Alpha(Alpha预乘)等基础概念详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 由于老猿以前没接触过图像处理,在阅读moviepy代码时,对类的有些处理方法代码看不懂是什么含义,为此花了4天时间查阅了大量资料,并加以自己的理解和 ...

随机推荐

  1. android studio中the logging tag can be most 23 characters

    转:http://blog.csdn.net/voiceofnet/article/details/49866047 今天写代码的时候,突然发现平时用的好好的Log竟然报错,提示信息为:the log ...

  2. TP中二维数组的遍历输出

    例子分析 <volist name="list" id="vo"> <volist name="vo['sub']" id ...

  3. mongo复习

    $pop:-1移除数组的第一个元素,1移除最后一个元素eg: db.c.update({"name" : "toyota"},{$pop:{"titl ...

  4. xml转成数组,原来这么简单!

    function xml2arr($xml){ $obj  = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $js ...

  5. 用Nikto探测一个网站所用到的技术

    Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs:超过 625种服务器版本:超过230种特定服务器问题,包括多种有潜 ...

  6. 使用I/O 系统调用--copy.c

    作为Linux/Unix 系统编程入门,小生按照自己可以理解的方式,改写了源copy.c源代码来自:Linux/UNIX 系统编程手册 上册 P57 #include <stdio.h>/ ...

  7. 修复UIImagePickerController偷换StatusBar颜色的问题

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:( ...

  8. DedeCMS V5.7 Dialog目录下配置文件XSS漏洞

    漏洞地址及证明:/include/dialog/config.php?adminDirHand="/></script><script>alert(1);< ...

  9. FreeMarker template error!

    部署项目后发现以下“FreeMarker template error!”的问题,google.baidu猛一顿搜索无果后开始认真分析异常信息. FreeMarker template error! ...

  10. JS动态调用方法名示例介绍

    先看看JS的一个函数  JavaScript eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数 描 ...