1. 程式人生 > >GPU 架構及 Pascal GPU

GPU 架構及 Pascal GPU

GPU 架構

  NVIDIA 的 GPU 計算產品被稱作 Tesla,這是從第一代針對 GPU 計算的 G80(Tesla 8,當時的 GPU 微架構也叫 Tesla)開始,NVIDIA 將傳統微架構意義上的核心稱作 streaming multiprocessor,簡稱 SM 或 SMX,SM 對來自並行執行的眾多執行緒的指令進行建立、管理、排程和執行,而“核心”這個稱呼則被 NVIDIA 用作 SIMD 中單個處理單元。(參考

GPU 整體結構

  • Streaming Multiprocessor(SM)
    • A set of CUDA cores (SP)
    • 其他資源
  • Global memory

SM 結構

  • 控制單元
    • Warp 排程器
    • 指令分發器
  • 執行單元
    • CUDA cores/SP
    • special function units (SFU)
    • load/store units (LD/ST)
  • Memory
    • 64K 32-bit registers
    • Cache
      • Texture/Constant memory
      • L1 Cache
      • Shared memory

Pascal GPU

Pascal 是 NVIDIA 引入 GPU 計算後的第五代 GPU 架構。在NVIDIA GTC2016 上首次向公眾公佈了基於 Pascal 的兩款 GPU:Tesla P100 和架構名尚不清楚的中端版 Pascal。其中,Tesla P100 採用頂級大核心 GP100

GP100 GPU 引數

  • 6 個圖形處理簇(GPC)
    • 每個 GPC 包含 10 個 SM,共 60 個 SM
      • 64 個單精 CUDA Cores/32 個雙精 CUDA Cores
      • 4 個紋理單元
      • 2 個分塊區,每個含有 1 個 Warp 排程器,2 個指令分發器
  • 30 個紋理處理簇(TPC)
    • 分佈在 2 個 SM 內
  • 240 紋理單元
  • 3840 單精度 CUDA Cores/1920 雙精度 CUDA Cores
  • 8 個 512 位記憶體控制器(共 4096 位)
    • 每個記憶體控制器搭配 512KB L2 Cache,共 4096KB L2 Cache
    • 每個 HBM2 DRAM 堆疊由一對記憶體控制器控制

GP100 的 SM 包括 64 個單精度 CUDA 核心。而 Maxwell 和 Kepler 的 SM 分別有 128 和 192 個單精度 CUDA 核心。雖然 GP100 SM 只有 Maxwell SM 中 CUDA 核心數的一半,但總的 SM 數目增加了,每個 SM 保持與上一代相同的暫存器組,則總的暫存器數目增加了。這意味著 GP100 上的執行緒可以使用更多暫存器,也意味著 GP100 相比舊的架構支援更多執行緒、warp 和執行緒塊數目。與此同時,GP100 總共享記憶體量也隨 SM 數目增加而增加了,頻寬顯著提升不至兩倍。

GP100 架構特性

  • 高效能低功耗
    • 支援單精度、雙精度、半精度,適合 HPC 和 Deep Learning
    • 支援 FMA
    • 工藝 16 納米 FinFET,300w
    • 頂級大核心 P100
      • 5.3 TFLOPS 的雙精度浮點 (FP64) 效能
      • 10.6 TFLOPS 的單精度 (FP32) 效能
      • 21.2 TFLOPS 的半精度 (FP16) 效能
  • HBM2 高速 GPU 記憶體架構
    • HBM2 記憶體是堆疊式記憶體並且與 GPU 處於同一個物理封裝內
    • 高頻寬:720GB/s
    • 高容量:16GB
  • Pascal 流式多處理器
    • SM 核心數減少,核心利用率提高
      • 每個 SM 的暫存器和 warp 數\執行緒數不變
      • 每個 SM 的shared memory 為 64KB
  • NVLink 高速互聯技
    • P100
      • 每個GPU支援 4 個 Nvlink 鏈路
      • 每個鏈路單向 20GB/s,雙向 40GB/s
  • 簡化程式設計
    • 統一記憶體
      • CPU 和 GPU 記憶體提供無縫統一的單一虛擬地址空間
      • 程式設計和記憶體模型簡單
    • 計算搶佔
      • 可防止長期執行的應用程式獨佔系統 (防止其它應用程式執行)
      • 程式設計師無再需要修改其長期執行的應用程式即可使其很好地相容其它 GPU 應用程式

相關推薦

GPU 架構 Pascal GPU

GPU 架構   NVIDIA 的 GPU 計算產品被稱作 Tesla,這是從第一代針對 GPU 計算的 G80(Tesla 8,當時的 GPU 微架構也叫 Tesla)開始,NVIDIA 將傳統微架構意義上的核心稱作 streaming multiproce

Pascal GPU 架構詳解

寫在前面:本文假定讀者有一定 CUDA 基礎。如果你對 GPU, sm_60/sm_61,CUDA 這些名詞感到陌生,可以看我之前寫的部落格《CUDA 從入門到精通》。 1. 前言Nvidia 在今年的 GTC( GPU Technology Conference ) 上高調

深入GPU硬體架構執行機制

目錄 一、導言 1.1 為何要了解GPU? 1.2 內容要點 1.3 帶著問題閱讀 二、GPU概述 2.1 GPU是什麼? 2.2 GPU歷史

(Matlab)GPU計算CPU計算能力的比較

new start atl border ble 大小 uri win courier %%首先以200*200的矩陣做加減乘除 做比較 t = zeros(1,100); A = rand(200,200);B = rand(200,200);C = rand(200,

FP16 gemm on cpu not implemented! GPU架構中的半精度與單精度計算

FP16 gemm on cpu not implemented! Stack trace returned 10 entries: (0)/usr/local/lib/python2.7/dist-packages/mxnet-1.3.0-py2.7.egg/mxnet/

tensorflow-gpu安裝問題解決(ImportError: libcudnn.so.7,module 'tensorflow.python.training.checkpointable'

最近需要用GPU來進行tensorflow進行訓練,發現需要安裝cuda 9.0版本才可以,因為tensorflow預設的就是cuda 9.0,為了減少對tensorflow原始碼進行重構的時間,將之前的cuda8.0版本進行了解除安裝,然後再安裝cuda 9.0 安裝過程

[Centos-Docker] Docker-gpu安裝docker中jupyter配置

寫在前面 OS版本:centos7 Anaconda版本:3.5 一、Docker安裝 安裝教程連結:https://github.com/ufoym/deepo#GPU,執行如下圖的Step1和Step2: Step1中的使用yum安裝命令如下: $ y

【01】win10 python3 安裝 Tensorflow-gpu 問題解決

準備工作: win10 下, python3.7 安裝完成 問題#1 :需要升級pip C:\> pip install tensorflow Collecting tensorflow Could not find a version that sati

tensorflow GPU安裝測試

# 一、TensorFLow-Gpu環境的搭建 ## 檢視nvidia的型號以便安裝相應的驅動 lspci | grep -i nvidia #這一步非常的重要,一定要看清楚自己的驅動型號,以便能夠找到正確的cuda和cudnn的型號  ## 禁用nouveau #在安

CUDA程式設計——GPU架構,由sp,sm,thread,block,grid,warp說起

  掌握部分硬體知識,有助於程式設計師編寫更好的CUDA程式,提升CUDA程式效能,本文目的是理清sp,sm,thread,block,grid,warp之間的關係。由於作者能力有限,難免有疏漏,懇請讀者批評指正。   首先我們要明確:SP(streaming

ubuntu16.04下安裝CUDA,cuDNNtensorflow-gpu版本過程

這篇文章主要依據兩篇文章: 深度學習主機環境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 深度學習主機環境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow 不過在實際執行的過程中,

【Ubuntu-Tensorflow】GPU設定視訊記憶體資源分配

最近筆者在做GPU視訊記憶體資源分配的研究,發現在tf中gpu一些實用的方法和介面,共享出來,供大家參考學習,如有問題,歡迎留言討論。 1.執行程式時,控制檯設定GPU執行引數,佔用視訊記憶體全部資源 $ CUDA_VISIBLE_DEVICES=0 p

CUDA程式設計-GPU架構軟硬體體系

  掌握部分硬體知識,有助於程式設計師編寫更好的CUDA程式,提升CUDA程式效能,本文目的是理清sp,sm,thread,block,grid,warp之間的關係。由於作者能力有限,難免有疏漏,懇請讀者批評指正。   首先我們要明確:SP(streaming Process),SM(streaming

GPU伺服器計算原理

圖形處理器(英語:Graphics Processing Unit,縮寫:GPU),又稱顯示核心、視覺處理器、顯示晶片,是一種專門在個人電腦、工作站、遊戲機和一些移動裝置(如平板電腦、智慧手機等)上影象運算工作的微處理器。 用途是將計算機系統所需要的顯示資訊進

Ubuntu16.04配置GPU步驟可能出現的問題

本文為轉載原文地址:https://blog.csdn.net/anshiquanshu/article/details/78639977感謝原作者的工作—————————————————————————————————————————————————————————————

CUDA GPU架構-硬體和軟體

       掌握部分硬體知識,有助於程式設計師編寫更好的CUDA程式,提升CUDA程式效能,本文目的是理清sp,sm,thread,block,grid,warp之間的關係。由於作者能力有限,難免有疏漏,懇請讀者批評指正。    首先我們要明確:SP(streaming

ubuntu16.04下安裝CUDA,cuDNNtensorflow-gpu

原博文:這篇文章主要依據兩篇文章: 深度學習主機環境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 深度學習主機環境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow 不過在實際執行的過程中,有一定的不同之處

Win7配置theano+cuda8+cudnn實現gpu加速遇到問題的解決方法

之前一直使用python2.7,但是最新的tensorflow官方教程(1.0版本)在Windows上只支援python3和CUDA8,所以解除安裝python2.7並重新安裝python3.6並配置theano和tensorflow,實現GPU加速。 Tensorflow

keras指定執行時顯示卡限制GPU用量

keras在使用GPU的時候有個特點,就是預設全部佔滿視訊記憶體。 這樣如果有多個模型都需要使用GPU跑的話,那麼限制是很大的,而且對於GPU也是一種浪費。因此在使用keras時需要有意識的設定執行時使用那塊顯示卡,需要使用多少容量。 這方面的設定一般有三種情

Mac下CUDA開啟Tensorflow-gpu 1.4 安裝

在之前的文章中,筆者介紹了在Mac下安裝Tensorflow及開發環境搭建。但是感覺用CPU跑機器學習還是太慢了,所以便研究研究如何使用GPU來跑。1.執行環境軟體環境: macOS Sierra 10.12.6 Xcode 8.2.1 Python 2.7 HomebrewGPU Driver: WebDr