粗粒度的時空計算
1985年,Xilinx公司推出了全球第一款FPGA產品XC2064[7] ,現(xiàn)在28nm工藝的FPGA陣列芯片已經作為應用平臺[8] ,實現(xiàn)了操作粗粒度的時空計算。但算法是通過硬件描述語言的邏輯設計映射到陣列芯片上的,沒有與TLP/DLP計算模式的軟件設計語言統(tǒng)一起來,抽象層次低,靈活性差,限制了OLP計算模式的應用。
本文引用地址:http://www.ex-cimer.com/article/143176.htm陣列語言
支持粗粒度時空計算的陣列語言,是能在標量語言(例如,C語言和MATLAB語言)的基礎上統(tǒng)一設計的。
首先,陣列數(shù)據(jù)及其特例(標量數(shù)據(jù)和向量數(shù)據(jù))在MATLAB語言中已有明確的表示[9] 。陣列數(shù)據(jù)就是C語言中的Data Array(數(shù)據(jù)陣列/數(shù)組),是用來表示同一類型的標量數(shù)據(jù)的集合的。因此,陣列語言的數(shù)據(jù)表示和類型,可以與C語言的相同而統(tǒng)一的。在陣列語言中,陣列數(shù)據(jù)采用了與MATLAB或C語言類似的順序描述方法。
二是陣列數(shù)據(jù)的計算,與數(shù)學語言的矩陣加減法計算一樣,是對其標量數(shù)據(jù)元素進行的。計算的操作類型及其表示符號均可以與C語言中的相同而統(tǒng)一的,只需要補充支持實現(xiàn)幾何變換的播送(broadcast)等3個操作及其操作符?! ?/p>
三是由于控制語句是時間一維的,陣列語言的控制語句是可以與標量語言(例如C語言)的控制語句相同而統(tǒng)一的。而計算語句則應由標量語句上升到由不同標量語句元素(statement elements)組成的陣列語句。標量語句元素的設計是可以與C語言的標量語句的設計相同而統(tǒng)一的。陣列語句的描述可以像C語言的Data Array那樣,采用先行后列,并從第一行開始順序描述的程序設計方法。使陣列語言統(tǒng)一了標量語言,繼承順序程序設計的特點,建立了陣列語言的程序設計的確定性。
陣列計算機
最近,人們分析發(fā)現(xiàn),自1985年以來,計算機體系結構革新與芯片技術進步對計算機性能的貢獻是相當?shù)?sup>[10] ?,F(xiàn)在的芯片制造技術,已經可以研制粗粒度計算的二維的陣列處理器(Array Processor)和三維(時間1維+空間2維)的陣列存儲器(Array Memory)。例如,Intel公司80個處理元的TeraScale Processor計劃的系統(tǒng)芯片[11] 。支持粗粒度時空計算的陣列計算機,可以是由指令存儲器、陣列處理器和陣列存儲器組成的。其實,馮.諾依曼體系結構的Flynn分類,以單指令流多數(shù)據(jù)流的SIMD(Single Instruction Multiple Data)體系結構,可以在陣列處理器上實現(xiàn)DLP計算模式的數(shù)據(jù)粗粒度的計算。以多指令流單數(shù)據(jù)流的MISD(Multiple Instruction Single Data)和多指令流多數(shù)據(jù)流MIMD(Multiple Instruction Multiple Data)體系結構,可以設計相應的陣列指令(array instruction),在陣列處理器上實現(xiàn)OLP計算模式的操作粗粒度的計算。
陣列語言中順序描述的陣列數(shù)據(jù)和陣列語句的陣列表示,是通過存儲到陣列存儲器中而自動完成的。存放在陣列存儲器中的陣列數(shù)據(jù)和陣列指令,是分別由指令存儲器中的操作指令和調用指令控制讀出,在陣列處理器上執(zhí)行的。從時間上來看,操作指令/調用指令是一條接一條地順序執(zhí)行的;從空間上來看,陣列存儲器中的陣列數(shù)據(jù)/陣列指令都是在單指令的控制下,有效地完成數(shù)據(jù)/操作粗粒度的時空計算。與標量計算機類似,陣列計算機的ISA也是作為更高抽象層次的接口,使陣列語言的程序設計不必了解ISA的實現(xiàn)細節(jié),能從算法解決問題的方式中直覺地產生出來。成為一種確定而可預測的過程,可促進粗粒度時空計算的軟件繁榮。
結束語
不斷提高計算機的能力是支持數(shù)學上的infinite的技術途徑之一?,F(xiàn)在已有由十幾萬芯片組成的千萬億次超級計算機,但其功耗就已達到2MW左右,使機房面積比龐然大物的電子管計算機的機房面積還大10倍,約700平米。有專家認為,2017年可能實現(xiàn)的Eflops超級計算機的核心處理器的數(shù)量大概在1000萬到1億個之間,這就遭遇到了能源使用問題。
計算機的功耗是由芯片的功耗和芯片之間互連線的功耗組成的。為了實現(xiàn)航空航天圖像處理計算機的小型化,早在1987年,休斯公司就開發(fā)了圓片級的硅直通技術(TSV, Through Silicon Via)?,F(xiàn)在,IBM公司針對超級計算機的能源使用問題,也研發(fā)了TSV技術,使芯片之間的距離只有幾微米,縮短了1000倍。甚至有人預測2023年到2062年之間,新型芯片和納米技術將使超級計算機的體積縮小到一塊方糖那么大,再沒有各種電纜,也不需要散熱[12] 。而粗粒度的陣列計算機的規(guī)則性是適合于TSV技術的。
參考文獻:
[1]Zukav G. The Dancing Wu Li Masters. New York: William Morrow and Company,1979 (中譯本:像物理學家一樣思考.廖世德,譯.???海南出版社,2011)
[2]Reilly E. Milestones in Computer Science and Information Technology. America: Greenwood Publishing Group, 2003
[3]Flynn M J. Very high speed computing systems. Proceeding of IEEE, 1966, 54(12):1901-1909
[4]Marowkia A. Back to Thin-Core Massively Parallel Processors. Computer, 2011, 44(12):49-54
[5]Kahle J. The Cell Processor Architecture//Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture. Barcelona, Spain, 2005:3
[6]Keckler S W, et al. GPUs and the Future of Parallel Computing. IEEE MICRO, 2011, 31(5):7-17
[7]Sklyarov V, Skliarova I, Sudnitson A. FPGA-based systems in information and communication//Proceedings of the International Conference on Application of Information and Communication Technologies. Baku, Azerbaijan, 2011:1-5
[8]Altera. Achieving One TeraFLOPS with 28-nm FPGAs[R/OL]. http://www.altera.com.cn/literature/wp/wp-01142-teraflops_CN.pdf
[9]Chapman S J. MATLAB Programming. 4th Edition. Singapore: Cengage Learning, 2011 (英文影印本.北京: 科學出版社, 2011)
[10]Danowitz, et al. CPU DB: Recording Microprocessor History. CACM 2012-04
[11]Mattson T G, Wijngaart R V, Frumkin M. Programming the Intel 80-core network-on-a-chip Terascale Processor//Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. Austin, USA, 2008:1-11
[12]美刊預測未來110年科技發(fā)展.參考消息,2012-12-19
評論