2019年8月10日 星期六

IBM TrueNorth

硬體

IBM TrueNorth 晶片使用 Samsung 28 nm 製程,每個晶片中有 540 萬個電晶體,面積為 4.3 cm²,功耗密度為 20 mW / cm²。相較之下,傳統的 CPU 功耗密度為 50-100 W / cm²。

每一個晶片中包含 4096 個 neurosynaptic core,每一個 core 當中都包含 256 個神經元,以及 256×256 個突觸。這些 core 組成了一個二維的 mesh 網路,當用它來處理 400×240 pixels (RGB) 的 30 fps 影片時,僅消耗 63 mW。

每一個 core 當中有許多可被定址的突觸前軸突 (presynaptic axons),一個 synaptic crossbar array,以及許多可被程式化的神經元。神經元的動態模型的 time step 是 1 ms,當 spike 在系統上的不同晶片之間傳遞時,可被視為是在 long-distance axon 上傳遞,其時間上的延遲也被考慮進去了,是介於 1~15 個 time steps。

當一個神經元產生 spike 時,它會在local memory 中查表得到 4 bits 軸突延遲 (axonal delay)、8 bits 目的地軸突位址、兩個 9 bits 相對位址 (用來在64×64 個 core 組成的 mesh 網路中進行跳躍傳遞。每一個 core 當中的 router,會負責將上述資訊所組成的 packet 在 mesh 網路中傳遞,且每一個 router 都有五個傳遞方向可以選擇,包含東、西、南、北、本地。

每一個突觸前軸突都有一個可調整的權重,是有號整數 (signed integer)。而突觸權重則只有一個 bit 儲存,因此只有連接和非連接兩種狀態。

每一個 core 上分別有 104448 個 bits 的 SRAM,其中 65536 bits 用來儲存突觸狀態,31232 bits 用來儲存神經元狀態和參數,6656 bits 用來儲存目的地位址,1024 bits 用來儲存軸突延遲。

其功耗是一個和 spike rate、spike 平均傳遞距離、單一神經元的平均活躍 synape 個數有關的函數。

軟體

除了設計 TrueNorth 晶片以外,IBM 也建立一個軟體生態系統,相關的軟體包含 Compass 及 Corelet。

Compass 是一個用 C++ 開發,可以對 neurosynaptic cores 網路結構進行模擬的軟體。透過 Compass,可以在晶片的設計階段,對晶片進行邏輯驗證。此外,Compass 也可以提供一個環境給 neural network 應用的開發者,在硬體尚未完成前,評估應用的可能性;也可以用來分析和優化硬體功耗。

Corelet 則是一個程式語言及開發環境 (Programming language and environment)。Corelet 將硬體進行抽象化,使用者可以用程式語言建立一個網路結構,並且可以調整相關的參數,接著這個程式就可以在 TrueNorth 上執行。

IBM 使用 off-line learning 的方式,已將一些常見的問題 map 到 TrueNorth 架構上,例如:CNN、liquid state machine、restricted Boltzmann machine、hidden Markov model、SVM、optical flow 以及 multi-modal classification。


Reference
Merolla, P. A., Arthur, J. V., Alvarez-Icaza, R., Cassidy, A. S., Sawada, J., Akopyan, F., ... & Brezzo, B. (2014). A million spiking-neuron integrated circuit with a scalable communication network and interface. Science, 345(6197), 668-673.

沒有留言:

張貼留言