從大算力到tranpose
最近忙于某個(gè)“大算力”芯片的架構(gòu)設(shè)計(jì),雖說運(yùn)算單元和數(shù)據(jù)結(jié)構(gòu)基本八九不離十了,卻也沒有時(shí)間完成預(yù)定的寫作KPI。況且工作上想的多了其它自然想的就少了,整整一個(gè)月沒有寫出什么有價(jià)值的文章,甚至連好的選題都沒有想到。也許接下來得把做過的Cellular工作list一下,既然沒想法就講講以前做的工作吧,既輕車熟路又不需要考慮泄密的問題。 個(gè)人理解當(dāng)下主流的大芯片設(shè)計(jì),本質(zhì)上其實(shí)都是在特定約束下解決大算力堆疊的問題,在芯片設(shè)計(jì)的過程中需要認(rèn)真思考的核心抓手無非是下面五點(diǎn): 1. 具體的目標(biāo)到底是什么,是為了突破絕對的性能瓶頸,還是在某個(gè)power和area的成本約束下完成更高效的設(shè)計(jì)? 2. 算力的提升,必須依賴增加算子的數(shù)量和密度。所謂一力降十會,簡簡單單的100個(gè)PE并行計(jì)算的算力遠(yuǎn)大于使用了所謂精妙算法和數(shù)據(jù)格式的1個(gè)PE 3. 需要設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)通路保證算子的數(shù)據(jù)吞吐效率,且數(shù)據(jù)結(jié)構(gòu)應(yīng)該是自然且適合少copy的。 4. 越是面向云的大芯片,越需要保障設(shè)計(jì)的flexibility。在IoT領(lǐng)域的面向特定場景下實(shí)現(xiàn)極致PPA指標(biāo)的專用加速器設(shè)計(jì)思路已經(jīng)無法滿足,即使在Cellular都已經(jīng)不是趨勢了,更別提云端芯片了。當(dāng)下的主流是基于ISA的DSA設(shè)計(jì),本質(zhì)上也是一種類CPU設(shè)計(jì),無非是去掉了為了支持圖靈完備而加入的大量控制電路,取而代之的是各種面向特定場景的專用PE用于算力加速。結(jié)合最近的工作經(jīng)驗(yàn),保證性能的前提下做到flexibility是最難的事情。 5. 雖然工藝還在不斷進(jìn)步,但是SRAM密度提升的越來越小,基礎(chǔ)單元功耗下降越來越少,先進(jìn)工藝的晶體管價(jià)格越來越貴,傳統(tǒng)的scale-up設(shè)計(jì)思路漸漸的會走到極限。芯片設(shè)計(jì)一定要考慮scale-out,chiplet是一種思路,更重要的是需要業(yè)務(wù)/框架/算法考慮如何把計(jì)算需求分布在不同芯片之間,同時(shí)保障芯片之間的帶寬需求又沒有那么大,畢竟最先進(jìn)的NV-Link也只能提供900GB/s的片間帶寬。 想明白了這些,其實(shí)大體上也就想明白了芯片該怎么做了。雖說芯片設(shè)計(jì)本身是不折不扣的水桶原理,但是一般而言還是有難有易的,比方ALU設(shè)計(jì)一般是容易的,但是指令和操作調(diào)度就難多了。最近這段時(shí)間,也算是演示了一遍從易到難的邊學(xué)邊想邊做??上f萬沒想到,最近卡在了又快又省又flexible的HW實(shí)現(xiàn)transpose上。雖說認(rèn)知到芯片設(shè)計(jì)是一場trade off已經(jīng)很久了,但是干活的時(shí)候依然不自覺的既要…又要…還要… 隨便說說對transpose的需求: 1. 高性能 為了整個(gè)計(jì)算的pipeline能力,需要transpose以很高的性能完成操作。舉個(gè)例子,在128 cycle內(nèi)完成256*256的矩陣轉(zhuǎn)置 2. 高靈活度 靈活度體現(xiàn)在兩個(gè)維度。第一個(gè)維度是支持從256*25 <-> 32*32的各種矩陣轉(zhuǎn)置,且資源利用率保持不變(譬如支持1個(gè)256*256,4個(gè)128*128…)。第二個(gè)維度是原始矩陣可以放在一個(gè)memory中,也可以放在多個(gè)memory中。 不考慮性能和實(shí)現(xiàn)的情況下,transpose其實(shí)只是promutation中很簡單的一種,本質(zhì)上只是兩塊memory之間的load 、store。即使只考慮性能,也有不斷4分、脈動(dòng)陣列、數(shù)據(jù)ratate這三種成熟的實(shí)現(xiàn)方法。當(dāng)考慮flexibility時(shí),事情就復(fù)雜了,高性能、靈活度、可實(shí)現(xiàn)性似乎成了三個(gè)需要trade off的角,似乎只有復(fù)雜的2D?Flattened Buttetfly NoC可以繼續(xù)研究研究…… 閑話就不多說了,繼續(xù)翻論文去了。芯片設(shè)計(jì)本質(zhì)上只是個(gè)工程問題,說難也難說簡單也簡單,見過的都簡單,沒概念的都難。