●在算法過程中頻繁的數(shù)據(jù)混洗使得NTT難以在計(jì)算集群中分布,無法并行計(jì)算,并且由于需要從大型數(shù)據(jù)集中加載和卸載數(shù)據(jù),在硬件上運(yùn)行時(shí)需要大量帶寬。即使硬件操作很快,這可能也會(huì)導(dǎo)致速度變慢。例如,如果硬件芯片的內(nèi)存為16GB或更少,那么在100GB的數(shù)據(jù)集上運(yùn)行NTT將需要通過網(wǎng)絡(luò)加載和卸載數(shù)據(jù),這可能會(huì)大大降低操作速度。
芯片的硬件指的是運(yùn)行指令的物理平臺(tái),包括處理器、內(nèi)存、存儲(chǔ)設(shè)備等等。芯片數(shù)據(jù)中常出現(xiàn)的“晶體管數(shù)量”、“7nm制程”、“存儲(chǔ)”等,往往指的就是硬件參數(shù)。
軟件則包括固件、驅(qū)動(dòng)程序、操作系統(tǒng)、應(yīng)用程序、算子、編譯器和開發(fā)工具、模型優(yōu)化和部署工具、應(yīng)用生態(tài)等等。這些軟件指導(dǎo)硬件如何響應(yīng)用戶指令、處理數(shù)據(jù)和任務(wù),同時(shí)通過特定的算法和策略優(yōu)化硬件資源的使用。芯片數(shù)據(jù)中常出現(xiàn)的“x86指令集”、“深度學(xué)習(xí)算子”、“CUDA平臺(tái)”等,往往指的就是芯片軟件。
在分析之前,我們先看一下ASIC(Application Specific Integrated Circuit),中文全稱是“專用集成電路”。這里特別強(qiáng)調(diào)“專用”,“專用”意味著針對(duì)單一項(xiàng)目來說會(huì)更加有競(jìng)爭(zhēng)力。相對(duì)比,GPU(顯卡)是通用計(jì)算處理芯片,所以在單一項(xiàng)目上來說“專用”肯定比“通用”更有競(jìng)爭(zhēng)力。
為了打破英偉達(dá)一家獨(dú)大的局面,前任全球芯片老大英特爾和多年老對(duì)手AMD對(duì)標(biāo)CUDA都分別推出了OneAPI和ROCm,Linux基金會(huì)更是聯(lián)合英特爾、谷歌、高通、ARM、三星等公司聯(lián)合成立了民間號(hào)稱“反CUDA聯(lián)盟”的UXL基金會(huì),以開發(fā)全新的開源軟件套件,讓AI開發(fā)者能夠在基金會(huì)成員的任何芯片上進(jìn)行編程,試圖讓其取代CUDA,成為AI開發(fā)者的開發(fā)平臺(tái)。