底层码农眼中的芯片
點這里效果好
這周四個展示 終于要熬到最后一個了 good luck
今天來討論這個問題 顯得有些應景 和 無力 剛說不再貿易戰 還搞菊廠 這只能說Trump是一個鱔變的男人?
什么是芯片?
當中興事件發生的時候 鋪天蓋地的新聞在報道『中國芯片』
看到這些新聞的時候 我一蒙 我不知道這里的芯片指的是什么
也許它什么都指 這可能是才最恐怖的
以電腦為例 基本上所有器件都可以稱為芯片
- 計算芯片: CPU GPU TPU NPU FRGA
- 存儲芯片: DRAM SDRAM ROM FLASH
- 通信芯片: 藍牙 WIFI NB-IOT 寬帶ADSL
- 傳感器: 陀螺儀 MEMS 指紋芯片麥克 攝像
- 接口芯片: USB 網卡 HDMI DP
- 電源芯片: 反正大家不認識就不列了
但很明顯各個部分的重要程度不一樣
CPU速度很快 I/O速度超慢
為了連接這二者 就出現了中間這條總線
CPU負責高速運算 然后把數據通過前端總線 經過北橋(內存管理集線器) 傳給內存 和 GPU
這個時候速度已經降了一級
然后再通過網絡總線 繼續往下傳 由南橋(也就是I/O控制集線器) 傳給各個外部 端口
比如說什么SATA硬盤,USB,網卡,視頻,音頻,CMOS
最后再經過LPC總線(就是很慢的總線) 與ROM中的BIOS、更慢一點的I/O連接
比如說串行端口 并行端口 鍵盤 鼠標啥的
到這里 整個PC機的芯片就串在一起了 作為一名合格的裝系統工程師 應該熟練掌握?
CPU
核心 + 指令集架構/CPU架構/處理器架構 + 微架構 = CPU - OS
核心指的就是CPU的硬件 包括ALU運算器 等等的
指令 就是 一個約定好的暗號
比如說 你對狗狗喊‘蹲下’ 它做出相應的反應 這就是一個指令完成的過程
當然如果你這樣對?說 可能不一定有用 這就是一個不成功的指令
微架構呢 就是管理硬件的一些操作
指令集 大部分 都是不開源的 只有授權了 才能拿到使用權
可以想到 指令集作為一種約定 用的人多了 這個指令集才值錢
因為更換成本較大 再加上一些壟斷的原因 現在世界上只有少數幾種通用的指令集
相對而言 在微架構方面 就有很多創新空間 所以現在包括 三星 蘋果 小米 等公司 都是在這個領域進行自己的設計
指令集架構
指令集分為復雜指令集RISC和精簡指令集CISC兩種
兩者最大的差別就是RISC支持變長度的指令 CISC只支持定長度的指令
這有什么區別呢 我們看一個例子
RISC: Thecatsatandatehishat
CISC: The cat sat and ate his hat.
復雜指令集相當于讀上面那句話 精簡指令集呢相當于讀下面這句話 很明顯下面更容易獲取信息
但定長也導致了拓展性低 各有優缺點
CISC目前常用的商業指令集有ARM,Power,MIPS
其中 ARM 獨占移動端 市場 主要是因為Intel在起步階段不夠重視移動端
Power是IBM開發的一個指令集 看用它的產品有XBOX 360,PS3, Wii Ui這個是Switch上一代產品 總結一下 這些都是上一代掌機
現在的掌機為了追求GPU效果 都換成了ARM 真香
MIPS是一個開源指令集 被中科院購買下來 后來成為龍芯公司 龍芯也是大陸第一個自主研制出能在Win上跑的芯片的公司(雖然只是WIn CN)
而復雜指令集呢 現在只有X86比較常用 X86是Intel開發與AMD互相授權的一個指令集 基本上壟斷了PC機
一個原因是因為Intel 微架構確實優化的叼 制作工藝也屌 在Intel這制程都不是事 落后一代也能吊打你 10nm和臺積電7nm差不多 真的恐怖
還有一個很重要的原因 就是Win只支持X86(現在也支持ARM了 但 那還是Win嗎)
所以如果你想開發能給Win用的CPU你就必須獲得X86授權
目前大陸只有兩家公司獲得X86的授權 一家是兆芯 一家是海光
兆芯的授權來自臺灣公司VIA 而VIA的X86授權來自美國反壟斷協會判給VIA的使用權 相對來說授權較為不穩定 而且技術支持較為薄弱
海光是AMD在中國的合資公司 AMD技術底蘊更強 合作意愿也更大 但起步晚
我的觀點 CPU指令集很難創新 也沒必要創新 有研究表明指令集與能耗性能無明顯關系
最重要的是已經形式相應的生態研制成本已經很大了 更換成本更大
微架構
微架構是各大公司創新點
目前微架構有以下幾種常見的方向
- 流水線化
- 多核、多線程
- SIMD 向量
- 存儲系統分層結構
流水線 就相當于時間上的并行 每個核心反復做相同的工作 由不同核心共同完成一個任務
多線程 就相當于 空間上的并行
SIMD就是單指令多數據 一次導一組數據 增加效率
前兩天剛好在研究一個在內存數據庫中利用SIMD構建DBMS的問題
可以看出微架構 是一個體系結構問題
在這之中有很多工作可以做
SOC
SOC是手機上的芯片的集合體
里面有CPU GPU DSP(用于多媒體解碼)有些還有NPU 通訊芯片藍牙 LCD 攝像頭 GPS等等
按功能可以分為AP BP 其他
BP主要功能是通信 包括基帶和射頻 基帶主要負責通信信號的處理 射頻主要負責信號的收發
AP則可以看做PC機 負責系統的處理
在AP BP中間都有相應的CPU DSP 電源等等
ARM 把CPU核心賣給各大廠商比如說高通 三星 蘋果
ARM不僅做硬件販賣商 也自己生產設計了自己的微架構 提供給各大IP提供商
這其中就有一個很著名的例子 就是2015年的驍龍810
當時高通第一次做8核心的SOC 沒啥經驗 用的公版芯片 就是ARN賣芯片送的微架構
這就導致了著名的暖手寶芯片 都說有了驍龍810 媽媽再也不怕我凍著了
當然驍龍810用的是20nm工藝也是一部分原因
GPU
GPU: graphics processing unit
雖然叫這個名字 但GPU還是一個通用的計算芯片 不僅可以用于圖像加速 還可以用于深度學習中
CPU是基于馮諾依曼體系 順序執行
GPU呢則是講究并行化處理 GPU利用其遠大于CPU的核心數達到并行的效果
CPU中因為通用性 存在很多緩存存儲機制
一個直觀的感受 一個GPU中運算單元的個數 VS CPU中運算單元大概能達到 這樣的一個比例
拿我自己的感受 Mac沒有N卡 每次跑模型 都是別人幾倍的時間 留下了沒有GPU的眼淚?
右下角是NVIDIA剛剛發布的一款適合深度學習的GPU 擁有4k多個核心 但是價格 看看就好了 這么大的煤氣灶 居然要2.5k刀 窮
TPU
TPU就不是通用的計算芯片 是一種AISC特定用途的芯片 由google設計專門對TensorFlow進行優化
舉一個例子 在10月份 Google發布了一個基礎TensorFlow的模型Bert
這個模型一出 就轟動NLP屆
有人稱之為NLP的春天 在它發布一個多月時間內
屠殺了各大NLP任務排行榜 比如說這個由Stanford發布的閱讀理解領域權威數據集
可以看到前7名全是用Bert的 足足把原有的水平提高7.8個百分點 十分接近人類表現了
但這個武器威力無比 但代價很大 大在哪 它用了幾千層Attention 計算量非常大
論文中Google Brain的老哥用了16塊TPU跑了4天 換算成錢? 就是12k刀跑一次 留下了沒有TPU的眼淚
事實上 TPU Google也不賣 只能提高云服務購買
所以有人說 Bert相當于核武器 雖然威力無比 但代價也很大
Money is all you need
然后這是TPU的設計架構
可以看出TPU相較于GPU 緩沖區更小 計算核心更多 而且采用SIMD架構 專門對大I/O進行優化
AISC
近些年來 AI持續走熱 各大公司 都推出了自己的AI芯片
但要明白這些芯片 并不是像CPU GPU那樣通用的芯片 只是針對專門任務進行優化的特殊功能芯片 稱之為AISC
我們知道在機器學習中 分為兩個步驟 先是用 數據訓練出一個模型 然后在用這個模型 預測出結果
在訓練中一般參數需要是浮點數 對計算性能要求就比較高
而預測過程中不再需要高精度浮點數 故有些人用8位長度來進行優化 推出了針對推測階段的 推測芯片
比如說寒武紀1A
雖然我個人覺得在手機上用的NPU都是垃圾
手機上能耗的限制 基本不能進行訓練 如果要預測 那個模型的大小大概是5MB左右 才能跑起來
現在的機器學習訓練出來的模型基本上都是幾個GB 于是目前在手機上的NPU效果不會太好
Clound Chip
可以看出越來越多的云廠商推出自己的AI芯片
尤其是Google推出TPU效果挺不錯的
首先 什么是Cloud
cloud 就是租用部署在云端的服務器
為啥要租用而不是購買呢 主要原因就是彈性擴容 以便資源最大利用
比如說微博 在一些明星有大瓜的時候 就會擴容 微博號稱可以支持并發出軌
還好在上周的吃瓜日中 終于抗住了 壓力
云服務廠商 比如說華為 AWS 微軟 都推出了自己的AI芯片
這種云服務廠商的芯片 具有獨特性 可以捆綁用戶購買其服務器
像這種機器學習機器購買 費用就會比較高
總結
- 上一篇: sql查询本月数据,当天数据
- 下一篇: 34. DDR2内存内部结构-3