| 7 | 1/1 | 返回列表 |
| 查看: 2256 | 回復(fù): 6 | |||||
| 當(dāng)前主題已經(jīng)存檔。 | |||||
yalefield金蟲(chóng) (文壇精英)
老漢一枚
|
[交流]
談?wù)凣PU吧
|
||||
|
先來(lái)點(diǎn)兒虛的。 計(jì)算基礎(chǔ)正在發(fā)生根本變革——解讀“計(jì)算2.0” 孟巖 從本質(zhì)上看,軟件實(shí)際上只是夾在人與硬件之間的一個(gè)中間層,人們使用軟件的根本目的還是要讓硬件運(yùn)轉(zhuǎn)起來(lái)為自己服務(wù)。硬件平臺(tái)如果長(zhǎng)期穩(wěn)定,軟件就能夠安穩(wěn)發(fā)展,建起高樓大廈,硬件基礎(chǔ)如果打個(gè)噴嚏,軟件就會(huì)得一場(chǎng)感冒。過(guò)去十幾年來(lái),我們的計(jì)算環(huán)境已經(jīng)發(fā)生了很多變化,比如RISC的興起,大規(guī)模服務(wù)器集群的發(fā)展,SIMD的普及,特別是網(wǎng)絡(luò)的大發(fā)展,令人印象深刻。每一項(xiàng)變化都給軟件帶來(lái)一定程度的沖擊。不過(guò)大部分情況下,這種沖擊力度有限:只需要有一小部分人去關(guān)注就好了,他們會(huì)盡可能把這些變化包裝起來(lái),從而使得其余的絕大部分人不受影響,而又能夠享受硬件發(fā)展帶來(lái)的免費(fèi)午餐。比如說(shuō),RISC跟硬件平臺(tái)帶來(lái)的變革是非常巨大的,但是只有編譯器和操作系統(tǒng)開(kāi)發(fā)者真正需要關(guān)注它。SIMD(MMX、3DNow!、SSEx)的發(fā)展使普通計(jì)算機(jī)處理多媒體數(shù)據(jù)的能力獲得了本質(zhì)提升,但是廠商們也推出了一系列封裝庫(kù),使應(yīng)用軟件開(kāi)發(fā)者們?cè)诓恍鑼?duì)開(kāi)發(fā)方式做重大改變的情況下享受這些發(fā)展成果。 然而站在今天這個(gè)時(shí)間點(diǎn)上往前看,就會(huì)看到,情況在發(fā)生的變化。發(fā)生在若干個(gè)不同領(lǐng)域的硬件進(jìn)展,幾乎在同時(shí)達(dá)到了可以被稱之為“本質(zhì)變化”的狀態(tài)。而所有這些變化結(jié)合起來(lái),則使我們面對(duì)一個(gè)自1980年代初PC崛起以來(lái)從來(lái)沒(méi)有過(guò)的局面,一個(gè)可以毫不夸張地稱之為“變革”的局面,我們稱之為“計(jì)算2.0”。在“計(jì)算2.0”的時(shí)代里,軟件開(kāi)發(fā)者面對(duì)的平臺(tái)會(huì)發(fā)生巨大的變化,而且這些變化很多是非常本質(zhì)的,無(wú)法簡(jiǎn)單地使用“包裝”的手段屏蔽掉,從而要求軟件開(kāi)發(fā)的實(shí)踐也必將隨之發(fā)生巨大的變化。這對(duì)軟件產(chǎn)業(yè)的每一個(gè)人來(lái)說(shuō),是歷史上很少會(huì)遇到的情況,給我們帶來(lái)巨大的挑戰(zhàn)和機(jī)遇。 下面就讓我們一起來(lái)展望一下“計(jì)算2.0”將給我們帶來(lái)的沖擊。 1. 多核與并發(fā)編程 自從2005年初C++標(biāo)準(zhǔn)委員會(huì)主席Herb Sutter發(fā)表《并發(fā)的革命——免費(fèi)午餐已經(jīng)結(jié)束》的著名文章以來(lái),多核已經(jīng)成為整個(gè)軟件社群里熱門話題。在那篇文章里,Herb Sutter斷言說(shuō),CPU頻率的提高已經(jīng)接近極限,摩爾定律的發(fā)展今后將依賴多核化進(jìn)行下去,因此,軟件若要在未來(lái)的環(huán)境下生存,必須考慮并發(fā)問(wèn)題。接著,Herb Sutter做出了更大膽和更驚人的語(yǔ)言,那就是不存在解決多核編程問(wèn)題的銀彈,不存在可以簡(jiǎn)單地將并發(fā)編程問(wèn)題化解掉的工具,開(kāi)發(fā)高性能的并行程序必須要求開(kāi)發(fā)者從根本上改變其編程方法。從某種意義上來(lái)說(shuō),這不僅僅是要改變50年來(lái)順序程序設(shè)計(jì)的工藝傳統(tǒng),而且是要改變數(shù)百萬(wàn)年來(lái)人類順序化思考問(wèn)題的習(xí)慣,其困難程度可想而知! 將近3年后的今天,Herb Sutter的預(yù)言似乎初步得到了印證。單核機(jī)器現(xiàn)在已經(jīng)成了過(guò)時(shí)貨,并且很快就會(huì)加入古董的行列。而多核機(jī)器的價(jià)格正在迅速下降。如今花2萬(wàn)塊錢人民幣,可以買下“三個(gè)8”的刀片服務(wù)器——兩個(gè)4核至強(qiáng)+8G內(nèi)存+四塊200G硬盤。再過(guò)一段時(shí)間,這個(gè)配置中的每項(xiàng)數(shù)據(jù)都會(huì)翻番。如果說(shuō)在雙核時(shí)代我們還可以假裝一切都沒(méi)有發(fā)生,那么當(dāng)一臺(tái)機(jī)器上出現(xiàn)16個(gè)核的時(shí)候,敢于去忽略這種體系結(jié)構(gòu)上的根本變革的人,一定是瘋子。 人們正在緊張地尋找著解決多核編程難題的方法。到目前為止,進(jìn)展不太大。目前最理想的結(jié)果,就是類似Intel C++和Intel Fortran這樣的編譯器,可以自動(dòng)識(shí)別可并行化的循環(huán)運(yùn)算,然后實(shí)施自動(dòng)并行化。但是這距離全面并發(fā)還很遙遠(yuǎn)。類似MPI和OpenMP這樣的解決方案雖然早就存在,但是要得到普及難度不小。至于其他的一些常規(guī)方案,無(wú)非是優(yōu)化多線程中的一些問(wèn)題,比如無(wú)鎖數(shù)據(jù)結(jié)構(gòu)嘗試避免加鎖和解鎖帶來(lái)的巨大開(kāi)銷,而事務(wù)型內(nèi)存也是為了優(yōu)化多線程程序共享資源的性能和可靠性。專門為并發(fā)系統(tǒng)設(shè)計(jì)的語(yǔ)言Erlang,被很多人視為多核時(shí)代的Java,但是Erlang的長(zhǎng)項(xiàng)在于并發(fā)任務(wù)的分發(fā)和同步,用它來(lái)處理計(jì)算密集型的任務(wù),如圖形圖像多媒體處理和數(shù)值計(jì)算,效率之低令人無(wú)法接受。也許把Erlang當(dāng)成計(jì)算的dispatcher,而讓每個(gè)核上都繼續(xù)以傳統(tǒng)的單線程方式運(yùn)行C程序是解決這類問(wèn)題的辦法。但是所有這些方法,都首先要求將任務(wù)分解成可同時(shí)并行的多個(gè)單元,并且將并行計(jì)算中的若干問(wèn)題定義清楚。也就是說(shuō),這些方法都無(wú)法解決那個(gè)最大的挑戰(zhàn):人的思維方式轉(zhuǎn)變問(wèn)題。不改變我們編寫應(yīng)用程序的傳統(tǒng)線性思維,所有這些工具都沒(méi)有太大幫助。毫無(wú)疑問(wèn),這是擺在我們面前的最大難題之一。 2. 新計(jì)算設(shè)備 寫作此文時(shí),Amazon剛剛發(fā)布了電子書閱讀器Kindle,這款產(chǎn)品的出現(xiàn),基本上等于宣告電子閱讀時(shí)代的降臨,它所將引起的沖擊必將是劃時(shí)代的。然而對(duì)于開(kāi)發(fā)者來(lái)說(shuō),它卻只不過(guò)是在一個(gè)已經(jīng)很長(zhǎng)的新計(jì)算設(shè)備名單里又加上了一項(xiàng)。這個(gè)名單中包括:PS2/3,XBox/XBox360,Wii, Tivo,Game Boy、Game Boy Advance,PSP,iPhone,Windows Mobile,Symbian,Linux Mobile,Blackberry,iPod,車載導(dǎo)航儀,當(dāng)然,還有最最激動(dòng)人心的機(jī)器人。有人大而化之將它們統(tǒng)稱為“嵌入式設(shè)備”,然而這是一個(gè)非常具有誤導(dǎo)性的說(shuō)法,這些設(shè)備中的每一項(xiàng)都不是傳統(tǒng)意義上的“嵌入式設(shè)備”,而是更接近于計(jì)算機(jī)的通用計(jì)算設(shè)備,更確切的說(shuō)法應(yīng)該是“專用的通用計(jì)算設(shè)備”。 僅僅十幾年以前,我們可以安全地認(rèn)為,世界上每臺(tái)計(jì)算機(jī)都是PC,每臺(tái)PC都用X86 CPU,都安裝了DOS/Windows。隨著最近幾年來(lái)新的計(jì)算設(shè)備如雨后春筍般涌現(xiàn),PC包打天下的時(shí)代已經(jīng)一去不返,這一點(diǎn)已經(jīng)非常清楚不過(guò)了。 然而,軟件開(kāi)發(fā)者并沒(méi)有從過(guò)去20多年形成的單一平臺(tái)迷思中擺脫出來(lái)。在軟件系統(tǒng)開(kāi)發(fā)中合理運(yùn)用多平臺(tái)特長(zhǎng),充分注重可移植性的思維尚未形成,大部分應(yīng)用還是為傳統(tǒng)PC平臺(tái)開(kāi)發(fā)的。這一點(diǎn)顯然已經(jīng)落后于時(shí)代的發(fā)展。當(dāng)然,這也就給那些有識(shí)之士提供了難得的機(jī)遇,充分利用多平臺(tái)整合的優(yōu)勢(shì),就可以開(kāi)發(fā)出革命性的新型應(yīng)用。 3. GPGPU “CPU——中心處理單元,計(jì)算機(jī)的核心和大腦,一切的一切的主宰!苯炭茣线@么告訴我們。 很遺憾,這種說(shuō)法早就不是事實(shí)了。自從類似DMA這樣的技術(shù)出現(xiàn),CPU就在不斷地“減負(fù)”。事實(shí)上一臺(tái)計(jì)算機(jī)里有許多塊不同的芯片,它們各自有各自的絕活,讓整臺(tái)計(jì)算機(jī)高速運(yùn)轉(zhuǎn)。不過(guò),不管怎么說(shuō),CPU還是整臺(tái)電腦里最強(qiáng)有力的中心,它最強(qiáng)大,最能干。對(duì)嗎? 很遺憾,連這個(gè)說(shuō)法也變得非常脆弱了。在那些裝備有高級(jí)圖形卡的電腦玩家的機(jī)器中,CPU已經(jīng)不是最強(qiáng)大的計(jì)算單元了,取而代之的是GPU。 GPU原本只是為了進(jìn)行3D圖形加速而誕生的芯片,由于其專用性,體系結(jié)構(gòu)較之CPU大大簡(jiǎn)化,從而可以高度優(yōu)化設(shè)計(jì),進(jìn)行大規(guī)模的浮點(diǎn)數(shù)并行計(jì)算。當(dāng)代GPU在這方面的性能遠(yuǎn)遠(yuǎn)超過(guò)了CPU。在浮點(diǎn)數(shù)計(jì)算速度上,NVIDIA最新的GPU超過(guò)Intel最快的CPU達(dá)10倍以上,而據(jù)稱,這一差距在未來(lái)幾年內(nèi)會(huì)達(dá)到數(shù)百倍。單就這一點(diǎn)來(lái)說(shuō),GPU早就是計(jì)算機(jī)中最快的芯片了。 然而,由于GPU的專用性,大部分通用計(jì)算任務(wù)是無(wú)法用GPU來(lái)完成的。例如,連最最簡(jiǎn)單的分支語(yǔ)句,GPU都無(wú)法完成。因此,GPU永遠(yuǎn)不可能取代CPU。但是,GPU強(qiáng)大的計(jì)算能力如果僅僅給高性能圖形程序和游戲來(lái)使用,也無(wú)疑是一種巨大的計(jì)算資源浪費(fèi),有沒(méi)有可能將GPU的計(jì)算資源暴露給應(yīng)用程序員,由他們將適合于GPU計(jì)算的任務(wù)轉(zhuǎn)交給GPU完成,而把CPU解放出來(lái)干CPU擅長(zhǎng)的工作呢?沒(méi)錯(cuò),這就是通用GPU計(jì)算(General Purpose GPU computing)的宗旨。 眼下,NVIDIA和AMD(不久前收購(gòu)ATI)都在加速推出對(duì)GPGPU開(kāi)發(fā)的支持,而據(jù)傳Intel也將在2008年推出自己的獨(dú)立顯卡,加入戰(zhàn)局。這也就意味著,不出幾年,每臺(tái)電腦里都會(huì)存在兩個(gè)強(qiáng)大的計(jì)算單元,一個(gè)是CPU,一個(gè)是GPU。軟件開(kāi)發(fā)人員將面臨新的挑戰(zhàn)——只有把任務(wù)合理地分配給CPU和GPU,并且進(jìn)行統(tǒng)一調(diào)度,才能夠達(dá)到效率上的最佳化。此外,那時(shí)候的CPU有8個(gè)或更多的核,而GPU本身更是高度并行化的計(jì)算單元,計(jì)算任務(wù)不僅要合理分布,還需要充分并行,這其中蘊(yùn)含的挑戰(zhàn)之大,足夠令人心驚膽寒。然而,也正正創(chuàng)造了英雄橫空出世的條件,誰(shuí)能夠橫刀立馬,誰(shuí)就能功成名就。 4. 無(wú)處不在的網(wǎng)絡(luò) 回到Kindle,這個(gè)產(chǎn)品最有趣的部分在于,你可以隨時(shí)通過(guò)無(wú)線網(wǎng)絡(luò)下載你想看的書,而且這些下載的書被保存在網(wǎng)絡(luò)上你的一個(gè)私人空間里。你永遠(yuǎn)不會(huì)買不到想要的書,也永遠(yuǎn)不用擔(dān)心家里太小,放不下這些書。如果你的Kindle丟失了或者你想換一臺(tái),沒(méi)關(guān)系,你龐大的圖書館會(huì)毫發(fā)無(wú)損。 你覺(jué)得怎么樣?非常好,對(duì)嗎?但這需要一個(gè)條件,一個(gè)重要的條件——無(wú)所不在的網(wǎng)絡(luò),特別的,無(wú)所不在的無(wú)線網(wǎng)絡(luò)。 不出幾年,將不會(huì)再存在Internet的死角,在任何地方你都可以高速訪問(wèn)Internet。對(duì)軟件開(kāi)發(fā)者來(lái)說(shuō)這意味著什么?這意味著很多過(guò)去慣用的軟件設(shè)計(jì)思路將不再是最優(yōu)的了,關(guān)于網(wǎng)絡(luò)訪問(wèn)限制的很多擔(dān)憂也變得不必要了。應(yīng)用可以保證永遠(yuǎn)連網(wǎng),用戶數(shù)據(jù)也最好保存在網(wǎng)絡(luò)上,密集的計(jì)算任務(wù)交給網(wǎng)絡(luò)上的高速節(jié)點(diǎn)來(lái)執(zhí)行,可能比本地執(zhí)行更快。一言以蔽之,網(wǎng)絡(luò)計(jì)算將全面取代單機(jī)計(jì)算,無(wú)論是對(duì)PC來(lái)說(shuō),還是對(duì)各種各樣的小設(shè)備來(lái)說(shuō)。 更重大的變化可能來(lái)自人們的生活方式,當(dāng)互聯(lián)網(wǎng)——這個(gè)目前世界上規(guī)模最大、最自由的網(wǎng)絡(luò)——無(wú)處不在并且速度飛快的時(shí)候,其他的通信網(wǎng)絡(luò)還有存在的必要嗎?我們還需要使用中國(guó)移動(dòng)的專有網(wǎng)絡(luò)并且每個(gè)月為之付出不菲的費(fèi)用嗎?我們還需要忍受諸如“腦白金”那樣的爛廣告和矯揉造作的爛主持人嗎?我們還需要買日?qǐng)?bào)和雜志嗎?可能都不需要了;ヂ(lián)網(wǎng)就是電視,互聯(lián)網(wǎng)就是電話,互聯(lián)網(wǎng)就是報(bào)紙,一切媒體歸于互聯(lián)網(wǎng)。這種局面會(huì)給人類的生存方式帶來(lái)一個(gè)重大的變革,在其中蘊(yùn)含著巨大機(jī)會(huì)、挑戰(zhàn)和財(cái)富。在這個(gè)意義上,Google的成功只不過(guò)是一個(gè)序曲而已。 如上所述,相信您已經(jīng)意識(shí)到我們處在一個(gè)怎樣的變革當(dāng)中!令我們興奮不已的是,軟件開(kāi)發(fā)者在這個(gè)變革中處于前鋒的位置,我們準(zhǔn)備好了嗎? ========== 在多核CPU上的多線程并行程序設(shè)計(jì),究竟應(yīng)該被稱為“并行(parallel)”還是“并發(fā)(concurrency)”,并沒(méi)有統(tǒng)一的認(rèn)識(shí)。通常將“并行”定義為在多個(gè)計(jì)算單元上同時(shí)執(zhí)行多個(gè)任務(wù),而將“并發(fā)”定義為在單個(gè)計(jì)算單元上以分時(shí)的方式“同時(shí)”執(zhí)行多個(gè)任務(wù),由于多核CPU有多個(gè)計(jì)算單元,因此似乎成為“并行”更加合適。但又因?yàn)閱蝹(gè)多核CPU對(duì)外只表現(xiàn)為一個(gè)計(jì)算單元,因此似乎“并發(fā)”也很合適。對(duì)這個(gè)問(wèn)題缺乏統(tǒng)一的認(rèn)識(shí)。從軟件開(kāi)發(fā)上來(lái)看,無(wú)論是否執(zhí)行在多個(gè)核上,編程方法本身必須發(fā)生變化,這種變化了的編程方法通常被稱為“并發(fā)編程”,表明這樣方式編寫的程序既可以跑在多個(gè)計(jì)算單元上,也可以以分時(shí)的方式執(zhí)行在一個(gè)計(jì)算單元上。 [ Last edited by csfn on 2008-12-29 at 20:24 ] |
學(xué)習(xí)資料 | 并行計(jì)算 |
金蟲(chóng) (文壇精英)
老漢一枚
|
作者:Ian Buck,研究員,美國(guó)斯坦福大學(xué)圖形實(shí)驗(yàn)室,E-Mail: ianbuck@graphics.stanford.edu 隨著現(xiàn)代圖形處理器(GPU)可編程能力及性能的提高,應(yīng)用開(kāi)發(fā)商們一直希望圖形硬件可以解決以前只有通用CPU才能完成的高密集計(jì)算任務(wù)。盡管利用通用GPU進(jìn)行計(jì)算很有發(fā)展前景,但傳統(tǒng)圖像應(yīng)用編程接口仍然將GPU抽象成一個(gè)包括紋理、三角形和像素在內(nèi)的圖像繪制器。尋找一種能夠使用這些基本元素的映射算法并不是一項(xiàng)簡(jiǎn)單的操作,即便對(duì)最先進(jìn)的圖形開(kāi)發(fā)商而言也是如此。 幸運(yùn)的是,基于GPU的計(jì)算從概念上講很容易理解,并且現(xiàn)有多種高級(jí)語(yǔ)言和軟件工具可以簡(jiǎn)化GPU的編程工作。但是,開(kāi)發(fā)商必須首先了解GPU在圖像繪制過(guò)程中是如何工作的,然后才能確定可用于計(jì)算的各個(gè)組件。 在繪制圖像時(shí),GPU首先接收宿主系統(tǒng)以三角頂點(diǎn)形式發(fā)送的幾何數(shù)據(jù)。這些頂點(diǎn)數(shù)據(jù)由一個(gè)可編程的頂點(diǎn)處理器進(jìn)行處理,該處理器可以完成幾何變換、亮度計(jì)算等任何三角形計(jì)算。接下來(lái),這些三角形由一個(gè)固定功能的光柵器轉(zhuǎn)換成顯示在屏幕上的單獨(dú)“碎片(fragment)”。在屏幕顯示之前,每個(gè)碎片都通過(guò)一個(gè)可編程的碎片處理器計(jì)算最終顏色值。 計(jì)算碎片顏色的運(yùn)算一般包括集合向量數(shù)學(xué)操作以及從“紋理”中提取存儲(chǔ)數(shù)據(jù),“紋理”是一種存儲(chǔ)表面材料顏色的位圖。最終繪制的場(chǎng)景可以顯示在輸出設(shè)備上,或是從GPU的存儲(chǔ)器重新復(fù)制到宿主處理器中。 可編程頂點(diǎn)處理器和碎片處理器提供了許多相同的功能和指令集。但是,大部分GPU編程人員只將碎片處理器用于通用計(jì)算任務(wù),因?yàn)樗ǔL峁└鼉?yōu)的性能,而且可以直接輸出到存儲(chǔ)器。 利用碎片處理器進(jìn)行計(jì)算的一個(gè)簡(jiǎn)單例子是對(duì)兩個(gè)向量進(jìn)行相加。首先,我們發(fā)布一個(gè)大三角形,其所包含的碎片數(shù)量和向量大小(容納的元素)相同。產(chǎn)生的碎片通過(guò)碎片處理器進(jìn)行處理,處理器以單指令多數(shù)據(jù)(SIMD)的并行方式執(zhí)行代碼。進(jìn)行向量相加的代碼從存儲(chǔ)器中提取兩個(gè)待加元素,并根據(jù)碎片的位置進(jìn)行向量相加,同時(shí)為結(jié)果分配輸出顏色。輸出存儲(chǔ)器保存了向量和,這個(gè)值在下一步計(jì)算中可以被任意使用。 可編程碎片處理器的ISA類似于DSP或Pentium SSE的指令集,由四路SIMD指令和寄存器組成。這些指令包括標(biāo)準(zhǔn)數(shù)學(xué)運(yùn)算、存儲(chǔ)器提取指令和幾個(gè)專用圖形指令。 GPU與DSP的比較 GPU在幾個(gè)主要方面有別于DSP架構(gòu)。其所有計(jì)算均使用浮點(diǎn)算法,而且目前還沒(méi)有位或整數(shù)運(yùn)算指令。此外,由于GPU專為圖像處理設(shè)計(jì),因此存儲(chǔ)系統(tǒng)實(shí)際上是一個(gè)二維的分段存儲(chǔ)空間,包括一個(gè)區(qū)段號(hào)(從中讀取圖像)和二維地址(圖像中的X、Y坐標(biāo))。 此外,沒(méi)有任何間接寫指令。輸出寫地址由光柵處理器確定,而且不能由程序改變。這對(duì)于自然分布在存儲(chǔ)器之中的算法而言是極大的挑戰(zhàn)。最后一點(diǎn),不同碎片的處理過(guò)程間不允許通信。實(shí)際上,碎片處理器是一個(gè)SIMD數(shù)據(jù)并行執(zhí)行單元,在所有碎片中獨(dú)立執(zhí)行代碼。 盡管有上述約束,但是GPU還是可以有效地執(zhí)行多種運(yùn)算,從線性代數(shù)和信號(hào)處理到數(shù)值仿真。雖然概念簡(jiǎn)單,但新用戶在使用GPU計(jì)算時(shí)還是會(huì)感到迷惑,因?yàn)镚PU需要專有的圖形知識(shí)。這種情況下,一些軟件工具可以提供幫助。兩種高級(jí)描影語(yǔ)言CG和HLSL能夠讓用戶編寫類似C的代碼,隨后編譯成碎片程序匯編語(yǔ)言。這些語(yǔ)言編譯器可以從Nvidia和微軟公司的網(wǎng)站免費(fèi)下載。盡管這些語(yǔ)言大大簡(jiǎn)化了描影匯編代碼的編寫,但實(shí)際應(yīng)用時(shí)仍然必須使用圖形API來(lái)建立并發(fā)布計(jì)算任務(wù)。 Brook是專為GPU計(jì)算設(shè)計(jì),且不需要圖形知識(shí)的高級(jí)語(yǔ)言。因此對(duì)第一次使用GPU進(jìn)行開(kāi)發(fā)的工作人員而言,它可以算是一個(gè)很好的起點(diǎn)。Brook是C語(yǔ)言的延伸,整合了可以直接映射到GPU的簡(jiǎn)單數(shù)據(jù)并行編程構(gòu)造。 經(jīng)GPU存儲(chǔ)和操作的數(shù)據(jù)被形象地比喻成“流”(stream),類似于標(biāo)準(zhǔn)C中的數(shù)組。核心(Kernel)是在流上操作的函數(shù)。在一系列輸入流上調(diào)用一個(gè)核心函數(shù)意味著在流元素上實(shí)施了隱含的循環(huán),即對(duì)每一個(gè)流元素調(diào)用核心體。Brook還提供了約簡(jiǎn)機(jī)制,例如對(duì)一個(gè)流中所有的元素進(jìn)行和、最大值或乘積計(jì)算。 Brook編譯器是一個(gè)源到源的編譯器,能夠把用戶的核心代碼映射成碎片匯編語(yǔ)言,并生成C++短代碼,從而鏈接到大型應(yīng)用中。這允許用戶只把應(yīng)用中的性能關(guān)鍵部分輸入Brook。Brook還完全隱藏了圖形API的所有細(xì)節(jié),并把GPU中類似二維存儲(chǔ)器系統(tǒng)這樣許多用戶不熟悉的部分進(jìn)行了虛擬化處理。 用Brook編寫的應(yīng)用程序包括線性代數(shù)子程序、快速傅立葉轉(zhuǎn)換、光線追蹤和圖像處理。Brook的編譯器和實(shí)時(shí)運(yùn)行環(huán)境可以從網(wǎng)站上免費(fèi)獲取。 sourceforge.net網(wǎng)站也為許多此類應(yīng)用提供資源。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速緩存、SSE匯編優(yōu)化Pentium 4執(zhí)行條件下,許多此類應(yīng)用的速度提升高達(dá)7倍之多。 對(duì)GPU計(jì)算感興趣的用戶努力將算法映射到圖形基本元素。類似Brook這樣的高級(jí)編程語(yǔ)言的問(wèn)世使編程新手也能夠很容易就掌握GPU的性能優(yōu)勢(shì)。訪問(wèn)GPU計(jì)算功能的便利性也使得GPU的演變將繼續(xù)下去,不僅僅作為繪制引擎,而是會(huì)成為個(gè)人電腦的主要計(jì)算引擎。 圖:執(zhí)行兩向量相加的簡(jiǎn)單Brook代碼示例。 Brook支持所有帶附加流數(shù)據(jù)的C句法, 流數(shù)據(jù)存儲(chǔ)于GPU的存儲(chǔ)器中, 而核函數(shù)也在GPU上執(zhí)行。 |
金蟲(chóng) (文壇精英)
老漢一枚
|
Rookie BrookGPU是斯坦福大學(xué)一個(gè)相當(dāng)有趣的項(xiàng)目,它可以為你展現(xiàn)當(dāng)前GPU的強(qiáng)大性能,雖然目前GPU尚不能完全取代CPU,但是這個(gè)編譯器為GPU模擬CPU的一般應(yīng)用提供了一個(gè)運(yùn)行環(huán)境。 BrookGPU是一個(gè)編譯器和實(shí)時(shí)系統(tǒng),可以為當(dāng)前GPU提供簡(jiǎn)單的類似C的編程環(huán)境。一個(gè)運(yùn)行在NVIDIA GeForce FX 5900 Ultra的shader程序運(yùn)算速度可達(dá)20 GFLOPS,相當(dāng)于 10GHz的Pentium 4,而且圖形系統(tǒng)的內(nèi)存帶寬為25.3 GB/sec,相比Pentium 4只有5.96 GB/sec。從這兩個(gè)原始數(shù)據(jù)不難看出GPU是一個(gè)非?斓倪\(yùn)算引擎,但是由于GPU的專用性,所以在其上編程相當(dāng)痛苦。BrookGPU在C基礎(chǔ)之上增加了簡(jiǎn)單的數(shù)據(jù)并行語(yǔ)言,可以讓程序員指定在GPU上運(yùn)行的部分特定代碼,而B(niǎo)rookGPU編譯器來(lái)負(fù)責(zé)實(shí)時(shí)運(yùn)行其他的部分。 首先聲明,我個(gè)人并不是Programmer,感覺(jué)當(dāng)前GPU長(zhǎng)于復(fù)雜的矢量(矩陣)計(jì)算(Vertex shader的強(qiáng)大應(yīng)該就是幾何轉(zhuǎn)換的可編程性能)?因此從事一般的此類計(jì)算應(yīng)該有很高的效率? 我還記得Epic的首席程序員Tim Sweency說(shuō)過(guò)未來(lái)隨著CPU功能不斷增強(qiáng),特定應(yīng)用的GPU將會(huì)消失。也許未來(lái)終究將會(huì)有一個(gè)CPU/GPU從事所有的運(yùn)算? |
鐵桿木蟲(chóng) (正式寫手)
金蟲(chóng) (文壇精英)
老漢一枚
|
SIGGRAPH 2007大會(huì)上,NVIDIA正式宣布了第三版GPU編程教材:《GPU Gems 3》(圖形處理器精粹第三部)。 NVIDIA表示,《GPU Gems 3》的目的是讓軟件開(kāi)發(fā)和科學(xué)研究人員充分挖掘GPU的并行運(yùn)算潛力,同時(shí)其中描述的技術(shù)還能幫助游戲開(kāi)發(fā)人員創(chuàng)造極其逼真的人物角色、更好的光照效果和粘貼渲染合成效果,并增強(qiáng)金融模擬、金融分析,甚至病毒檢測(cè),尤其是NVIDIA CUDA編程架構(gòu)等非圖形類應(yīng)用。 《GPU Gems 3》英文原版有1000頁(yè)之多,是GPU硬件編程發(fā)燒友的必備寶典。除了NVIDIA,來(lái)自業(yè)界的20多家公司也都參與了該書的編輯,包括蘋果、微軟研究院、世嘉、Crytek、EA、Infinity Ward等等,另外還有不少學(xué)術(shù)機(jī)構(gòu)的貢獻(xiàn),比如美國(guó)康乃爾大學(xué)、伊利諾斯大學(xué)、英國(guó)達(dá)特茅斯學(xué)院、倫敦帝國(guó)理工學(xué)院、日本東京大學(xué)等。 Crytek首席圖形程序員表示:《GPU Gems》系列匯集了下一代3D引擎所需要的最關(guān)鍵的運(yùn)算法則。 《GPU Gems》頭兩部的中文版分別由人民郵電出版社和清華大學(xué)出版社發(fā)行,第三部的中文版暫時(shí)沒(méi)有消息。 |
金蟲(chóng) (文壇精英)
老漢一枚
|
Arstechnica刊登了一篇名為NVIDIA on the highwire: the GeForce 8800 and beyond的文章,該文主要援引Nvidia投資關(guān)系部副總裁Mike Hara最近在投資會(huì)議上的言論對(duì)Nvidia的未來(lái)進(jìn)行了分析,包括未來(lái)的獨(dú)立顯卡市場(chǎng),競(jìng)爭(zhēng)對(duì)手AMD/ATi R600發(fā)布,Intel未來(lái)的獨(dú)立GPU產(chǎn)品以及高性能計(jì)算市場(chǎng)等等。 首先,Hara重申了Nvidia的產(chǎn)品周期策略,即每年秋季發(fā)布高端產(chǎn)品,在來(lái)年年初發(fā)布中端產(chǎn)品,低端產(chǎn)品隨后在跟進(jìn)。按照這個(gè)策略來(lái)看,目前Nvidia正摘主打低端產(chǎn)品市場(chǎng),并準(zhǔn)備秋季的高端產(chǎn)品。Hara進(jìn)一步透漏,在今秋我們不僅將看到后G80高端產(chǎn)品的發(fā)布,還將看到Nvidia的首個(gè)65nm GPU。從90nm到65nm的過(guò)渡將使得Nvidia在工藝上和AMD/ATi并駕齊驅(qū),同時(shí)有更大的空間提升性能和產(chǎn)品利潤(rùn),當(dāng)然這和取決于AMD/ATi下一代產(chǎn)品的進(jìn)展情況。 在談到工藝技術(shù)時(shí),Hara強(qiáng)調(diào)說(shuō)Nvidia提高產(chǎn)能的長(zhǎng)期技巧就是處理器工業(yè)常用的可配置性。簡(jiǎn)而言之,就是Nvidia工廠對(duì)于產(chǎn)品進(jìn)行功能測(cè)試,如果所有像素流水線都能開(kāi)啟,那么將標(biāo)識(shí)為高端產(chǎn)品, 如果有些流水線無(wú)法工作,那么工廠將屏蔽某些電路,將該芯片配置成更少流水線,更低時(shí)鐘的低端產(chǎn)品。 Hara同時(shí)也和投資者坦承,Nvidia要繼續(xù)保持20%的年增長(zhǎng)率,必須面臨三個(gè)挑戰(zhàn): 1.與AMD/ATi聯(lián)軍,以及計(jì)劃引入獨(dú)立GPU的Intel相比,Nvidia毫無(wú)疑問(wèn)是三強(qiáng)中最弱的一家,而且Nvidia是唯一一家沒(méi)有類似Fusion計(jì)劃,CPU+GPU產(chǎn)品長(zhǎng)期計(jì)劃的廠商。 2.獨(dú)立圖形已成成熟產(chǎn)業(yè),沒(méi)有多少提升的市場(chǎng)空間 3.Intel未來(lái)的獨(dú)立GPU將蠶食獨(dú)立GPU市場(chǎng)不多的空間 但Hara告訴投資者,關(guān)于人們對(duì)Nvidia沒(méi)有CPU/GPU整合產(chǎn)品的擔(dān)心是多余的:第一,CPU+GPU產(chǎn)品只適用于低端產(chǎn)品;第二,即使在低端市場(chǎng),該產(chǎn)品也將不會(huì)有太大作為。Hara認(rèn)為他之所以得出以上結(jié)論,是因?yàn)楠?dú)立GPU非常復(fù)雜,如果非要將GPU和CPU整合在一個(gè)內(nèi)核中,那么你必須割舍某些重要功能。他不認(rèn)為這種產(chǎn)品有什么太大價(jià)值,特別是與整合圖形功能的芯片組相比而言。 Hara和JP Morgan說(shuō):"即使有這么個(gè)產(chǎn)品,那也將是Intel和AMD之間的戰(zhàn)爭(zhēng),我不認(rèn)為它將改變獨(dú)立GPU市場(chǎng)。" 接著,正如上述,Hara談到了Nvidia的重點(diǎn)市場(chǎng),獨(dú)立GPU市場(chǎng)。也許是受到CPU入侵GPU市場(chǎng)的影響,Hara長(zhǎng)篇大論談了GPU將是計(jì)算機(jī)的下一波浪潮,而CPU將成為過(guò)去。 Hara表示,商業(yè)計(jì)算機(jī)市場(chǎng)和筆記本計(jì)算性能需求的萎縮正是Nvidia與Intel和AMD/ATi相對(duì)抗的動(dòng)力所在。相比而言,在消費(fèi)和娛樂(lè)市場(chǎng)需要不斷提高,而正促使Nvidia將在不久后進(jìn)入GigaFLOP時(shí)代。 Hara說(shuō):"我們正在驅(qū)動(dòng)你們的體驗(yàn),嘗試看看你們獲得體驗(yàn)的東東吧--那正是我們的平臺(tái)。" Hara對(duì)Nvidia前景表示樂(lè)觀:"GPU不僅僅是用戶體驗(yàn),而且是未來(lái)娛樂(lè)和醫(yī)療圖像等所有體驗(yàn)的下一個(gè)重點(diǎn)所在。"這也許是Nvidia可以保持在獨(dú)立GPU市場(chǎng)高速增長(zhǎng)的原因所在。 而在消費(fèi)市場(chǎng),Hara還舉例說(shuō)明了Vista 3D界面,高分視頻以及網(wǎng)絡(luò)視頻的流行作為證據(jù),強(qiáng)調(diào)未來(lái)無(wú)論是桌面還是筆記本市場(chǎng),對(duì)獨(dú)立GPU產(chǎn)品仍有更高需求。 Hara和德國(guó)銀行證券說(shuō):"我寧愿相信高性能市場(chǎng)占40%,而低端市場(chǎng)占60%。" Nvidia將獨(dú)立GPU市場(chǎng)增長(zhǎng)冀望于用戶體驗(yàn),GFLOPS性能的跨越則允許Nvidia繼續(xù)拓展核心消費(fèi)GPU業(yè)務(wù)。 Hara說(shuō):"我們正在改變核心市場(chǎng),使之成為娛樂(lè)驅(qū)動(dòng)空間,這樣我們可以將核心市場(chǎng)以外技術(shù)帶到我們前所未有的境界。" Hara還表示Nvidia將繼續(xù)開(kāi)拓石油,天然氣和醫(yī)療圖像市場(chǎng),很顯然Nvidia非常重視高性能計(jì)算市場(chǎng)。而目前,Nvidia將Intel的Larrabee圖形項(xiàng)目視為最大的威脅所在。 但Hara仍然保持自信,并對(duì)Larrabee提出了批評(píng),諸如缺乏成熟驅(qū)動(dòng),代碼以及軟件生態(tài)系統(tǒng)等等。他說(shuō),Larrabee實(shí)際上就是多內(nèi)核的x86。 總之,Nvidia在面臨Intel和AMD兩強(qiáng)的競(jìng)爭(zhēng)中,仍然在高空中孤獨(dú)而又危險(xiǎn)地走著鋼絲。Nvidia必須嚴(yán)格執(zhí)行產(chǎn)品策略,并維持在獨(dú)立GPU市場(chǎng)的領(lǐng)先地位,它同時(shí)還要追逐高性能計(jì)算市場(chǎng),Nvidia必須保持兩手都要硬,否則將沒(méi)有機(jī)會(huì)用綠色眼睛看到驅(qū)動(dòng)地球所有像素時(shí)代的到來(lái)。 在加州San Jose召開(kāi)的微處理器2007論壇上,Nvidia公司架構(gòu)主管Nicklls稱:“圖形處理器只是放在一邊,許多人都提出了這個(gè)偉大的創(chuàng)意:嘿,讓我們用GPU做些事情.” 該架構(gòu)主管指出,當(dāng)圖形處理器未執(zhí)行圖形相關(guān)任務(wù)時(shí),GPU可與中央處理器并行執(zhí)行計(jì)算任務(wù).從而使每秒浮點(diǎn)計(jì)算次數(shù)達(dá)到2000億. Nvidia公司發(fā)布了名為“統(tǒng)一計(jì)算設(shè)備架構(gòu)”軟件(CUDA)的測(cè)試版,該軟件將于今年下半年正式推出.CUDA可讓開(kāi)發(fā)商編寫指令程序,以便讓GPU執(zhí)行通常由CPU執(zhí)行的計(jì)算任務(wù).Nvidia公司表示,將GPU當(dāng)作CPU并不一種新思想,但Nvidia公司的新軟件能使開(kāi)發(fā)商更容易地實(shí)現(xiàn)目標(biāo). CUDA只能用于一定型號(hào)的圖形處理器,包括Nvidia的GeForce 8800和8600,還有06年11月發(fā)布的FX 4600和5600. Nvidia公司指出,用戶購(gòu)買GPU的目的是圖形處理,但在PC的絕大部分工作時(shí)間中它是閑置的,如果你充分發(fā)揮了GPU的功能,你的電腦就能成為一臺(tái)大功率、高性能的并行計(jì)算系統(tǒng).” |
金蟲(chóng) (文壇精英)
老漢一枚
|
siggraph 2007 剛剛開(kāi)完不久,作為一個(gè)大部分工作都是在Nvidia圖形卡上進(jìn)行OpenGL開(kāi)發(fā)的技術(shù)人員,我對(duì)這二者在siggraph2007上的動(dòng)作都非常關(guān)注,其中令人興奮的消息是GPU Gems 3的發(fā)布和OpenGL 3的發(fā)布。下面簡(jiǎn)單介紹一下。 GPU Gems 3 是 nvidia公司的 GPU Gems系列的延續(xù),其中大部分文章的作者都是Nvidia公司的,研究范圍相等廣泛,技術(shù)也相當(dāng)不錯(cuò),給出了當(dāng)前GPU發(fā)展的最新技術(shù),跟另一巨頭AMD.ATI(好別扭)所出的ShaderX系列可以說(shuō)代表了當(dāng)前最先進(jìn)的Real-Time渲染技術(shù)。記得前兩本都是公司第一時(shí)間從亞馬遜網(wǎng)站郵購(gòu)回來(lái)的,這次不知道能不能先睹為快。nvidia公司在其網(wǎng)站給出了18、30、38章供下載。下面是它的書目: Chapter 1: Generating Complex Procedural Terrains Using the GPU Chapter 2: Animated Crowd Rendering Chapter 3: DirectX 10 Blend Shapes: Breaking the Limits Chapter 4: Next-Generation SpeedTree Rendering Chapter 5: Generic Adaptive Mesh Refinement Chapter 6: GPU-Generated Procedural Wind Animations for Trees Chapter 7: Point-Based Visualization of Metaballs on a GPU Chapter 8: Summed-Area Variance Shadow Maps Chapter 9: Interactive Cinematic Relighting with Global Illumination Chapter 10: Parallel-Split Shadow Maps on Programmable GPUs Chapter 11: Efficient and Robust Shadow Volumes Using Hierarchical Occlusion Culling and Geometry Shaders Chapter 12: High-Quality Ambient Occlusion Chapter 13: Volumetric Light Scattering as a Post-Process Chapter 14: Advanced Techniques for Realistic Real-Time Skin Rendering Chapter 15: Playable Universal Capture Chapter 16: Vegetation Procedural Animation and Shading in Crysis Chapter 17: Robust Multiple Specular Reflections and Refractions Chapter 18: Relaxed Cone Stepping for Relief Mapping Chapter 19: Deferred Shading in Tabula Rasa Chapter 20: GPU-Based Importance Sampling Chapter 21: True Impostors Chapter 22: Baking Normal Maps on the GPU Chapter 23: High-Speed, Off-Screen Particles Chapter 24: The Importance of Being Linear Chapter 25: Rendering Vector Art on the GPU Chapter 26: Object Detection by Color: Using the GPU for Real-Time Video Image Processing Chapter 27: Motion Blur as a Post-Processing Effect Chapter 28: Practical Post-Process Depth of Field Chapter 29: Real-Time Rigid Body Simulation on GPUs Chapter 30: Real-Time Simulation and Rendering of 3D Fluids Chapter 31: Fast N-Body Simulation with CUDA Chapter 32: Broad-Phase Collision Detection with CUDA Chapter 33: LCP Algorithms for Collision Detection Using CUDA Chapter 34: Signed Distance Fields Using Single-Pass GPU Scan Conversion of Tetrahedra Chapter 35: Fast Virus Signature Matching on the GPU Chapter 36: AES Encryption and Decryption on the GPU Chapter 37: Efficient Random Number Generation and Application Using CUDA Chapter 38: Imaging Earth’s Subsurface Using CUDA Chapter 39: Parallel Prefix Sum (Scan) with CUDA Chapter 40: Incremental Computation of the Gaussian Chapter 41: Using the Geometry Shader for Compact and Variable-Length GPU Feedback 我對(duì)它的8、10、11、41章比較感興趣,呵呵,都是陰影相關(guān)和新出的Geometry Shader應(yīng)用的。 OpenGL 3.0是OpenGL ARB組織今年的重頭戲之一。于2007年8月8日正式發(fā)布,其specification還要經(jīng)過(guò)協(xié)商討論、正式定稿后,然后由Khronos Group組織進(jìn)行為期30天的評(píng)估后,于9月底對(duì)外公開(kāi)整個(gè)規(guī)范。其中,OpenGL、OpenGL|ES、GLSL都進(jìn)行了相應(yīng)的調(diào)整和升級(jí)。主要的改變有以下一些部分。 GLSL部分的改變包括:將attribute、varying關(guān)鍵詞更改成in、out、inout;將單個(gè)的uniform變量組裝成uniform buffer性質(zhì)的common結(jié)構(gòu);內(nèi)置固定管線的狀態(tài)不再tracked;sampler2D數(shù)組使用image2DArray和filter來(lái)代替;預(yù)處理增加##和#include語(yǔ)句;OpenGLES增加了lowp、mediump、highp限定詞;矩陣增加row_major限定詞,允許使用行優(yōu)先矩陣了;增加了switch語(yǔ)句。 將在結(jié)合CgFX的基礎(chǔ)上,增加一個(gè)創(chuàng)建rendering eEffects的框架---glFX。其目的是為了更好、更容易的創(chuàng)建特效。glFX將支持OpenGL2.1、OpenGL3.0、OpenGL ES 2.0等。并對(duì)OpenGL3.0作出優(yōu)化。 OpenGL3.0的改變包括:消除遺留的一些功能,如 過(guò)程式編程接口(Begin/End)、固定管線的T&L功能和紋理應(yīng)用方法、客戶端的頂點(diǎn)數(shù)組方式、選擇模式、反饋模式、求職器、累計(jì)緩存等;全面轉(zhuǎn)向?qū)ο竽P,用于提高性能和共享靈活,基本上所有能成型的東東都叫Object的了。如:State Object、Data Oobject、Container Object、Vertex Array Object、Buffer Object、Shader Object、Program Environment object、Program Object、Texture Filter Object、Image Object、Format Object、Rasterization Object、Per-Sample Operations Object、Framebuffer Object、Save/Restore Object、Pack/Unpack Object、Sync/Query Object等。 就總體而言,感覺(jué)3的改變相當(dāng)大,不論是概念、內(nèi)容、還是接口。我想:這一方面是Khronos Group接受ARB組織后,加快OpenGL發(fā)展步伐的表現(xiàn),另一方面也是DirectX10的快速發(fā)展,使得OpenGL從被借鑒者變成了借鑒者,吸收了DirectX中的一些先進(jìn)的地方和優(yōu)點(diǎn),才會(huì)痛下決心,作出如此重大的改變。不管怎樣,作為一名長(zhǎng)期從事OpenGL開(kāi)發(fā)的人員,希望OpenGL能一路走好! 參考鏈接:http://www.opengl.org/ http://www.siggraph.org/s2007/ http://www.gamedev.net/reference ... ect/gpu-gems-3.html http://www.khronos.org/library/d ... r_bof_presentation/ http://bbs.gameres.com/showthread.asp?threadid=91490 |
| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求調(diào)劑 +9 | 張zz111 2026-03-27 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 22408 359分調(diào)劑 +4 | Qshers 2026-03-27 | 6/300 |
|
|
[考研] 327求調(diào)劑 +6 | 汲亦昊 2026-03-29 | 6/300 |
|
|
[考研] 321求調(diào)劑 +7 | 璞玉~~ 2026-03-25 | 8/400 |
|
|
[考研] 數(shù)一英一271專碩(085401)求調(diào)劑,可跨 +7 | 前行必有光 2026-03-28 | 8/400 |
|
|
[考研] 322求調(diào)劑 +7 | 宋明欣 2026-03-27 | 7/350 |
|
|
[考研] 071000生物學(xué)求調(diào)劑,初試成績(jī)343 +7 | 小小甜面團(tuán) 2026-03-25 | 7/350 |
|
|
[考研] 081200-314 +3 | LILIQQ 2026-03-27 | 4/200 |
|
|
[考研] 315分求調(diào)劑 +7 | 26考研上岸版26 2026-03-26 | 7/350 |
|
|
[考研] 求調(diào)劑 +3 | 劉柯@ 2026-03-24 | 4/200 |
|
|
[考研] 調(diào)劑推薦 +5 | 清酒714 2026-03-26 | 6/300 |
|
|
[考研] 294分080500材料科學(xué)與工程求調(diào)劑 +4 | 柳溪邊 2026-03-26 | 4/200 |
|
|
[考研] 調(diào)劑 +4 | 柚柚yoyo 2026-03-26 | 4/200 |
|
|
[考研] 0703化學(xué)求調(diào)劑 +3 | 丹青奶蓋 2026-03-26 | 5/250 |
|
|
[考研] 材料與化工328分調(diào)劑 +6 | 。,。,。,。i 2026-03-23 | 6/300 |
|
|
[考研] 一志愿吉林大學(xué)材料與化工303分求調(diào)劑 +4 | 為學(xué)666 2026-03-24 | 4/200 |
|
|
[有機(jī)交流]
20+3
|
FENGSHUJEI 2026-03-23 | 5/250 |
|
|
[考研] 一志愿南航材料專317分求調(diào)劑 +5 | 炸呀炸呀炸薯?xiàng)l 2026-03-23 | 5/250 |
|
|
[考研] 一志愿河北工業(yè)大學(xué)0817化工278分求調(diào)劑 +7 | jhybd 2026-03-23 | 12/600 |
|
|
[考研] 一志愿重慶大學(xué)085700資源與環(huán)境,總分308求調(diào)劑 +7 | 墨墨漠 2026-03-23 | 8/400 |
|