Nvidia Tegra K1 晶元為什麼會有 192 個 GPU 核心,需要這麼多嗎?

GPU 核心越多越好嗎?為什麼 K1 需要這麼多核心,而 Apple A7 少少幾個 GPU 核心就足夠呢?

via Nvidia debuts 192-core Tegra K1 processor


謝邀。

各個廠家對「核心」的定義不同。一個CUDA Core其實只相當於一個SIMD Line,一條PTX(NVIDIA GPU的指令集)指令需要幾十個CUDA Core的參與才能夠完成。

把核心數目宣傳成這樣只是一種營銷上的做法,跟技術沒什麼關係。


Tegra K1 GPU為NV Kepler 架構, 對於Kelper架構而言,一個SMX有6個SM共 6*32 = 192 個SP(流處理器)。但是此core非彼core。

傳統的core通常具有獨立的指令調度單元,獨立的整數單元。從這個意義上來講,Tegra K1 只有4個「指令」core, 但是有6個「執行」core,存在喂不飽執行單元的問題,所以在Maxwell中又改為4個「指令」core,4個「執行」core。192個SP 具有gather/scatter能力,此為與AVX2.0之前的SIMD明顯區別。嚴格來講,GPU中thread概念並非有獨立指令流的thread,而是可以理解為有獨立訪存能力的「地址」thread。

Mobile GPU 主要是受限於功耗,規模和頻率遠低於桌面GPU。至於「夠」與「不夠」, 那隻能說,永遠都不夠。

圖形部分不太了解,對於通用計算而言:

GPU 核心越多越好嗎?

對於memory bound的應用而言,SP的增加一般不會提高性能。對於compute bound 的應用,SP的增加幾乎會導致線性的性能提升。但是事實上,多數應用為memory bound 或者 irregular。移動端memory帶寬的提升才會讓更多應用受益。如有興趣,可參考:

The Roofline Model

http://crd.lbl.gov/assets/pubs_presos/parlab08-roofline-talk.pdf

Roofline: An Insightful Visual Performance Model for Multicore Architectures

http://www.eecs.berkeley.edu/~waterman/papers/roofline.pdf

而 Apple A7 少少幾個 GPU 核心就足夠呢?

A7 的 GPU 同樣也是SIMD架構,此處核心與Tegra K1 的 SMX 對應,其實K1 也就 6個而已(還喂不飽)。


各個廠家對GPU"核心"的定義不同

ImgTec的PowerVR SGX 系列將一個相對完整的GPU單元視作一個核心

英偉達的Tegra系列的GPU將一個ALU視作一個核心

高通的Adreno系列相對不注重核心的宣傳,所以暫忽略

ARM的Mali系列將一個統一Shader單元視作一個核心

Vivante的GC系列將一條SIMD Shader流水線視作一個核心

———————————————————————————

如果按照NV的演算法,adreno320就是64核心,330就是128核心,


核心數多少跟性能有關係的。你看tesla卡的k20和k20x,價格差了一些,性能上單精度也差了一些,完全是因為後者比前者多192個cuda核心。


gpu就是做眾核結構的,結構和CPU不一樣,處理的問題不一樣。

CPU的核的運算性能要強很多。


推薦閱讀:

Tegra 4 和 Snapdragon 800,一個 2.3Ghz 一個 1.8Ghz,為何跑分相近?

TAG:圖形處理器GPU | NVIDIATegra | TegraK1 |