版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
誰(shuí)主沉浮OpenCL與CUDA架構(gòu)深入解析!2008-12-1710:22:15來源:小熊在線(北京)網(wǎng)友評(píng)論3條進(jìn)入論壇最近,Khronos公布了OpenCL(OpenComputingLanguage)的第一個(gè)測(cè)試版本,一經(jīng)發(fā)布便在通用計(jì)算領(lǐng)域掀起來軒然大波!OpenCL是由蘋果公司發(fā)起,業(yè)界眾多著名廠商共同制作的面向異構(gòu)系統(tǒng)通用目的并行編程的開放式、免費(fèi)標(biāo)準(zhǔn),也是一個(gè)統(tǒng)一的編程環(huán)境前言最近,Khronos公布了OpenCL(OpenComputingLanguage)的第一個(gè)測(cè)試版本,一經(jīng)發(fā)布便在通用計(jì)算領(lǐng)域掀起來軒然大波!OpenCL是由蘋果公司發(fā)起,業(yè)界眾多著名廠商共同制作的面向異構(gòu)系統(tǒng)通用目的并行編程的開放式、免費(fèi)標(biāo)準(zhǔn),也是一個(gè)統(tǒng)一的編程環(huán)境。便于軟件開發(fā)人員為高性能計(jì)算服務(wù)器、桌面計(jì)算系統(tǒng)、手持設(shè)備編寫高效輕便的代碼,而且廣泛適用于多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構(gòu)以及數(shù)字信號(hào)處理器(DSP)等其他并行處理器,在游戲、娛樂、科研、醫(yī)療等各種領(lǐng)域都有廣闊的發(fā)展前景。那么OpenCL與NVIDIA的CUDA架構(gòu)是什么關(guān)系,是否是外界認(rèn)為的競(jìng)爭(zhēng)關(guān)系?目前眾多的通用計(jì)算標(biāo)準(zhǔn)中,比如NVIDIA的CUDA、Khronos的OpenCL、AMD的Stream,CAL、Brook+、微軟下一代的Computershader等,他們之間有什么異同,看完這篇文章,相信你就會(huì)有一個(gè)大概的了解……OpenCL來了!Khronos是一個(gè)開發(fā)組織,著名的OpenGL就是出自Khronos之手,Khronos有很多廠商組成,OpenCL工作組同時(shí)也是OpenCL的一個(gè)協(xié)調(diào)機(jī)構(gòu),來負(fù)責(zé)制定OpenCL的規(guī)格、架構(gòu)等等各方面。業(yè)界最主要的和圖形或者和計(jì)算相關(guān)的廠商都是Khronos的成員。OpenCL實(shí)際上是針對(duì)異構(gòu)系統(tǒng)進(jìn)行并行編程的一個(gè)全新的API,OpenCL可以利用GPU進(jìn)行一些并行計(jì)算的工作。我們知道,圖形里面有很多API,比如OpenGL是針對(duì)圖形的,而OpenCL則是針對(duì)并行計(jì)算的API。OpenCL開發(fā)人員可以利用GPU和CPU的計(jì)算能力,把GPU和CPU異構(gòu)的系統(tǒng)運(yùn)用在很多并行計(jì)算的領(lǐng)域。OpenCL對(duì)于業(yè)界來說是非常重要也是非常好的一個(gè)標(biāo)準(zhǔn),這樣業(yè)界有一個(gè)共同的標(biāo)準(zhǔn)可以利用GPU的強(qiáng)大計(jì)算能力,然后應(yīng)用在圖形以外各種各樣的并行計(jì)算方面。NVIDIA公司的副總裁NeilTrevett是OpenCL工作組的主席,引導(dǎo)很多OpenCL的開發(fā),NVIDIA公司很多員工都在參與這項(xiàng)工作。OpenCL最早由Apple公司提出的,OpenCL發(fā)起NVIDIA就和Apple公司進(jìn)行非常緊密的合作。OpenCL開發(fā)的過程中,技術(shù)平臺(tái)均為NVIDIA的GPU,實(shí)際上OpenCL是基于NVIDIAGPU的平臺(tái)進(jìn)行開發(fā)的。另外OpenCL在大概兩個(gè)多月以前進(jìn)行了第一次演示,也是運(yùn)行在NVIDIA的GPU上。對(duì)于Apple公司來說是把GPU計(jì)算當(dāng)成一種未來的趨勢(shì),他們非常重視OpenCL,在新一代的產(chǎn)品里面選擇了最適合于OpenCL運(yùn)行的平臺(tái)。所以新一代蘋果的筆記本電腦全都采用了NVIDIA的平臺(tái),不管是MacBookPro還是MaBook。實(shí)際上這也是從另外一個(gè)方面證明NVIDIA的GPU對(duì)于OpenCL的支持。OpenCL與CUDA并非敵對(duì)關(guān)系很多人對(duì)什么是CUDA可能還有一些疑慮,并沒有搞清楚CUDA到底是什么。實(shí)際上CUDA最主要的包含兩個(gè)方面:一個(gè)是ISA指令集架構(gòu);第二硬件計(jì)算引擎;實(shí)際上是硬件和指令集。也就是說我們可以把CUDA看做是與X86或者cell類似的架構(gòu),但是是基于是GPU,而不是傳統(tǒng)的CPU。這個(gè)其實(shí)很好理解,把它和傳統(tǒng)的和CPU的架構(gòu)比較下相信就更容易理解,傳統(tǒng)X86是包含一套指令集和執(zhí)行X86各種各樣的CPU,對(duì)于CUDA也是一樣,CUDA有一套指令集ISA,還有執(zhí)行指令集各種各樣的硬件引擎。CUDA到目前為止包含了一個(gè)C語(yǔ)言的編譯器,當(dāng)然CUDA架構(gòu)還可以支持其他的API,包括OpenCL或者DirectX,同時(shí)CUDA還會(huì)有其他的語(yǔ)言,包括Fortran、Java、Python等各種各樣的語(yǔ)言,可以說CUDA架構(gòu)是原生的,專門為計(jì)算接口而建造的這樣的一個(gè)架構(gòu),這種硬件架構(gòu)包括指令集都是非常適合于這種并行計(jì)算,為異構(gòu)計(jì)算而設(shè)計(jì)的一整套的架構(gòu)。OpenCL與CUDA的關(guān)系上圖很好的解釋CUDA和OpenCL的關(guān)系,他們并不是沖突關(guān)系,而是包容關(guān)系。OpenCL是一個(gè)API,在第一個(gè)級(jí)別,CUDA架構(gòu)是更高一個(gè)級(jí)別,在這個(gè)架構(gòu)上不管是OpenCL還是DX11這樣的API,還是像C語(yǔ)言、Fortran、DX11計(jì)算,都可以支持。作為程序開發(fā)員來講,一般他們只懂這些語(yǔ)言或者API,可以采用多種語(yǔ)言開發(fā)自己的程序,不管他選擇什么語(yǔ)言,只要是希望調(diào)用GPU的計(jì)算能,在這個(gè)架構(gòu)上都可以用CUDA來編程。CUDA編程的道理和CPU的編程很類似,比如有了X86的指令集,又有X86各種各樣的CPU,那么我們只需要對(duì)這個(gè)指令集編程即可。X86架構(gòu)上有各種各樣的開發(fā)工具,當(dāng)然也有C語(yǔ)言,F(xiàn)ortran語(yǔ)言,Python語(yǔ)言,Java或者以前的Pascal語(yǔ)言,不論你使用什么語(yǔ)言進(jìn)行開發(fā),最后還是在X86的架構(gòu)上執(zhí)行。CUDA也是一樣,有了CUDA的指令集,有了支持CUDA的硬件,我們就可以采用不同的途徑來進(jìn)行開發(fā),比如可以采用OpenCL或者DirectX這樣的API,也可以用C語(yǔ)言或者Fortran或者Java開發(fā),最終都可以在CUDA架構(gòu)上運(yùn)行。OpenCL與CUDAC語(yǔ)言的異同前文已經(jīng)說過,CUDA架構(gòu)與OpenCL是包容關(guān)系,我們把他們放在同一級(jí)別進(jìn)行討論本來就是錯(cuò)誤的,與OpenCL在同一級(jí)別不是CUDA架構(gòu),而是CUDA的C語(yǔ)言包,也就是我們常說的CUDA版本,比如,CUDA1.0、CUDA2.0等等,下面來介紹一下OpenCL和CUDAC語(yǔ)言的一些異同。對(duì)于編程人員來說可以選擇不同的開發(fā)環(huán)境來進(jìn)行編程,例如我們可以選擇OpenCL編程也可以選擇CUDA上面的C語(yǔ)言來編程,或者API的語(yǔ)言來編程。API和C語(yǔ)言進(jìn)行開發(fā)是有一些不同的,API是一個(gè)編程接口,它的核心是函數(shù)庫(kù)和應(yīng)用程序開發(fā)的一個(gè)硬件接口,對(duì)于API來編程的話,好處在于可以訪問比較低層次的硬件,單弊端也是顯而易見的,那就是很多程序特別是像內(nèi)存的管理,需要程序員自己來進(jìn)行管理。而我們?cè)诶肅UDAC語(yǔ)言來編程的時(shí)候,底層的硬件管理是由CUDA開發(fā)包來進(jìn)行管理,比如內(nèi)存是用runtime進(jìn)行管理(runtime實(shí)際上就是運(yùn)行時(shí)的一些支持程序來進(jìn)行底層硬件的管理),而不需要開發(fā)者考慮底層的硬件效率。不管OpenCL或者CUDAC語(yǔ)言來編程,最終都是需要通過一個(gè)驅(qū)動(dòng)程序來變成一個(gè)PTX的代碼,PTX相當(dāng)于CUDA的指令集來進(jìn)行執(zhí)行,然后交給圖形處理其或者交給CPU來進(jìn)行執(zhí)行。也就是說,如果開發(fā)人員想獲得更多的對(duì)硬件上的控制權(quán)的話,可以使用API來進(jìn)行編程,而如果類似科學(xué)家如果對(duì)API不是太了解,那么就可以用CUDAC語(yǔ)言來編程,這是兩種不同編程的方式,他們有他們相同點(diǎn)和不同點(diǎn)。OpenCL和CUDAC語(yǔ)言進(jìn)行開發(fā)的時(shí)候,在并行計(jì)算上的概念很相似,在程序上是也有很大的相似度,所以程序之間的相互移植相對(duì)來說也比較容易。當(dāng)然我們也許會(huì)有疑問,那就是OpenCL看似更趨向于底層開發(fā)的API,那相對(duì)于CUDAC來說,OpenCL開發(fā)的程序執(zhí)行效率會(huì)不會(huì)比CUDAC效率更高一些?實(shí)際上這個(gè)問題是不用擔(dān)心的,執(zhí)行效率高不高,并不取決于采用的什么語(yǔ)言,什么樣的API,更大程度上取決于的代碼的優(yōu)化程度!不同編程模式解讀下面我們來深入解讀一下CUDA與C語(yǔ)言編程模式的異同。對(duì)C語(yǔ)言進(jìn)行編程的人員都知道,C語(yǔ)言使用驅(qū)動(dòng)程序就是API,實(shí)際上是一種抽象,這個(gè)抽象主要是指和硬件相關(guān)的抽象。實(shí)際上CUDAC語(yǔ)言是一種C語(yǔ)言的擴(kuò)展,這擴(kuò)展的一部分主要是進(jìn)行并行運(yùn)算編程的方面,這些是通過C的擴(kuò)展來獲得的。基本上認(rèn)為CUDA的程序也是一種標(biāo)準(zhǔn)的C語(yǔ)言的程序,然后使用一些關(guān)鍵字然后來對(duì)并行這方面計(jì)算,最后做一些區(qū)分。C語(yǔ)言最終編譯會(huì)成為PTX的代碼,然后在GPU上執(zhí)行。OpenCL是一個(gè)API,就是應(yīng)用程序的編程接口,OpenCL和OpenGL很像,這種API可以調(diào)用API最底層的數(shù)據(jù),通過程序開發(fā)調(diào)用各種各樣的函數(shù),實(shí)現(xiàn)各種各樣的功能。對(duì)于API來說一般它對(duì)硬件設(shè)備有比較完整的訪問權(quán),以訪問硬件的設(shè)備,可以對(duì)內(nèi)存進(jìn)行管理,這是由開發(fā)人員通過編程來做的這些事情。最后OpenCL通過編譯、通過驅(qū)動(dòng)程序可以生成PTX代碼在GPU上進(jìn)行執(zhí)行。編程人員要利用GPU的計(jì)算能力開發(fā)你的應(yīng)用的時(shí)候,有兩種模式:如果你需要對(duì)硬件有更多的控制,可以通過OpenCL來編你的API和你的程序,那么它可以在CPU上運(yùn)行;如果不需要底層的硬件管理,同時(shí)對(duì)硬件有控制權(quán),而且又不太懂API這些程序,只要用C語(yǔ)言就可以編程了,或者CUDAC語(yǔ)言來編程,編完程序以后也可以在CPU的硬件上運(yùn)行。OpenCL和OpenGL在很多方面都很類似,他們也是一個(gè)共同的組織Khronos來進(jìn)行管理的。對(duì)OpenGL圖形開發(fā)比較熟悉的人使用OpenCL計(jì)算這方面的開發(fā),他們就會(huì)非常熟悉它里面所涉及的很多方面,這是OpenCL的一個(gè)非常明顯的特點(diǎn)。如果你對(duì)圖形編程很熟悉的話,就像是Computershader,如果是多媒體等方面的應(yīng)用,又想使用圖形又想使用GPU的來計(jì)算,用Computershader的DX11編程,可能比較容易。但是對(duì)于大部分的科學(xué)家來說,可能對(duì)API,OpenCL可能完全不熟悉,他需要的就像在CPU上編程一樣,對(duì)CPU的計(jì)算編程,可以使用CUDAC語(yǔ)言,在CUDAC語(yǔ)言里面我們把CPU看成專門做計(jì)算的協(xié)處理器來進(jìn)行編程,這是兩個(gè)之間不同的模式。如果認(rèn)為一種開發(fā)環(huán)境就可以取代其他的開發(fā)環(huán)境,這個(gè)是不現(xiàn)實(shí)的。舉個(gè)例子,在X86的架構(gòu)上,除了C語(yǔ)言以外還有Java、Fortran還有Pascal語(yǔ)言,這些不可能互相取代的,每種語(yǔ)言、每種API都有它使用的人群。不同的語(yǔ)言、不同的API都會(huì)滿足不同人群的。GPU計(jì)算和API語(yǔ)言不是太多,目前還比較少,NVIDIA還會(huì)不斷地推出Java、Pascal或者C++也會(huì)支持。如果以前沒有Fortran,那些“老古董”程序員要讓他們學(xué)習(xí)C語(yǔ)言的話基本不可行,他們可能用Fortran用了幾十年,讓他們使用C語(yǔ)言開發(fā)的話他就比較痛苦,所以O(shè)penCL與CUDAC語(yǔ)言并不存在誰(shuí)將取代誰(shuí)的問題。CUDA與ATIStream異同我們知道,ATI方面也有自己的通用計(jì)算編程接口,叫做Stream。那么他與CUDA架構(gòu)又有什么不同呢?Stream基本上還是基于一種傳統(tǒng)CPU的一種方式,Stream主要包括CAL與Brook+。CAL是一套指令集,可以用匯編語(yǔ)言的方式來開發(fā)軟件,然而我們匯編方式開發(fā)軟件的話,對(duì)搞計(jì)算的人來說不大現(xiàn)實(shí),讓他們用匯編語(yǔ)言來說的話可能確實(shí)是一個(gè)折磨。Brook+是斯坦福大學(xué)開發(fā)的,它是類似于C語(yǔ)言的東西,是把底層GPGPU的計(jì)算方式類似于C的這種語(yǔ)言,這里要說明的是Brook+不是C語(yǔ)言而是類C語(yǔ)言,語(yǔ)法和C語(yǔ)言比較類似,但內(nèi)部做的還是使用頂點(diǎn)這樣的數(shù)據(jù)。Stream視頻編碼另外Stream的方式還有一個(gè)很大的問題,那就是主要是基于本地的板載內(nèi)存存入數(shù)據(jù),換算完成再寫到板載內(nèi)存。這樣對(duì)GPU非常強(qiáng)大的計(jì)算能力來說,帶寬是一個(gè)非常大的障礙。例如每秒種進(jìn)行1P的數(shù)字計(jì)算的話,需要多少的帶寬?32位浮點(diǎn)4個(gè)字節(jié),如果是1P的話,我們把乘加這部分也計(jì)算在內(nèi)就相當(dāng)于再乘以2,至少需要每秒2P的吞吐量然后才能夠滿足,板載內(nèi)存每秒需要幾十P??梢奡tream的方式從效率上是一個(gè)比較低的計(jì)算,而對(duì)于開發(fā)者來說也會(huì)碰到很多的問題。對(duì)于CUDA來說我們支持的C語(yǔ)言,是真正GPU上運(yùn)行的C語(yǔ)言。C語(yǔ)言有一個(gè)很重要的特點(diǎn),需要有存儲(chǔ)體系,而NVIDIAGPU在設(shè)計(jì)之初就考慮到了這點(diǎn),內(nèi)部有擁有sharememory,編譯器會(huì)把大部分的數(shù)據(jù)盡可能的在sharememory上進(jìn)行計(jì)算。sharememory帶寬非常高,因?yàn)樗谛酒瑑?nèi)部,速度接近于寄存器。數(shù)據(jù)在sharememory上運(yùn)行,然后再把這個(gè)數(shù)據(jù)再輸出,這樣的話真正地可以利用到絕大部分的GPU性能。匯編語(yǔ)言的弊端基于Stream來開發(fā)的應(yīng)用軟件,我們知道的只有一個(gè)是folding@home,ATI比NVIDIA進(jìn)入早兩年,但是NVIDIA進(jìn)入以后使用CUDA的語(yǔ)言來寫folding@home客戶端的軟件,性能比ATI的GPU要高好幾倍。folding@home的一個(gè)版本可以運(yùn)行在在上一代的架HD3(報(bào)價(jià)參數(shù)圖片評(píng)測(cè))850或者HD3870的GPU上,但是HD4850和HD4870發(fā)布后,從浮點(diǎn)性能上來說計(jì)算能力比HD3850、HD3870要高2.5倍,但是folding@home的性能反而下降了?原來HD3870是200ns/day左右,每天可以模擬200萬秒的性能等級(jí),但是HD4870發(fā)布后每天只能模擬170ns/day,這又是為什么?其原因是軟件不是使用Brook+開發(fā)的,而直接使用匯編的方式,這就需要對(duì)每一個(gè)新的GPU進(jìn)行編程,每個(gè)架構(gòu)都需要對(duì)它重新進(jìn)行編程,然后才可以得到一個(gè)最好的效率,這就是說使用匯編方式的話會(huì)帶來一個(gè)非常大的問題,任何一個(gè)應(yīng)用軟件里面都需要重新優(yōu)化、重新編程。匯編語(yǔ)言實(shí)際上就是機(jī)械碼來進(jìn)行編程,屬于體力比較好、記憶也比較好的人才能勝任的工作。高級(jí)語(yǔ)言相對(duì)來說確實(shí)要簡(jiǎn)單太多了,例如有些人甚至對(duì)編程都不是很熟悉,他只要基本上知道源代碼里面哪些代碼是在做什么東西,然后他就可以使用CUDA,核心部分計(jì)算部分一定要自己編寫,因?yàn)镃UDA有很多現(xiàn)成的庫(kù),都是直接寫好的函數(shù),這個(gè)函數(shù)把原來的函數(shù)替代掉,就可以取得很好的性能。NVIDIA提供很多函數(shù)庫(kù),這些函數(shù)庫(kù)有一些是NVIDIA公司開發(fā)的,像FFT、線性代數(shù)或者是快速傅里葉變換等,但是有一些庫(kù)是第三方幫NVIDIA開發(fā)的。CUDA實(shí)際上形成一個(gè)非常好的環(huán)境,不斷的有人針對(duì)CUDA來開發(fā),不管是應(yīng)用軟件或者是中間件,這些中間件的話就包含各種各樣的庫(kù)。因此對(duì)于CUDA來說,與Stream相比幾乎現(xiàn)在沒什么可比性。對(duì)OpenCL、DirectX這樣應(yīng)用在CUDA的架構(gòu)上運(yùn)行程序也比在Stream上運(yùn)行程序好的多。因?yàn)镹VIDIA在使用的CUDA架構(gòu)實(shí)際上字開發(fā)的時(shí)候,就考慮到通用計(jì)算方面的應(yīng)用。而ATI方面,可能通用計(jì)算僅僅是圖形的一個(gè)副產(chǎn)品。OpenCL與CUDAC語(yǔ)言路線圖目前OpenCL路線圖目前還是屬于Alpha版本。明年第一季度可能是Beta的版本,09年OpenCL1.0可能會(huì)正式推出,OpenCL最早會(huì)出現(xiàn)在MacOS上,以后逐漸的擴(kuò)展到其他的操作系統(tǒng),像Windows或者Linux。OpenCL路線圖下面來介紹一下CUDAC語(yǔ)言的情況,NVIDIA一直還是不斷地對(duì)這個(gè)語(yǔ)言進(jìn)行更深層次的開發(fā),也不斷的有新版本的出現(xiàn),到目前為止已經(jīng)是CUDA2.0。CUDAC語(yǔ)言研發(fā)已經(jīng)超過5年時(shí)間,NVIDIA從03年左右就開始開發(fā)C語(yǔ)言。到目前為止,開發(fā)人員的數(shù)量已經(jīng)是超過25000個(gè),而且現(xiàn)在應(yīng)用程序已經(jīng)超過100個(gè),特別是很多的科學(xué)計(jì)算的領(lǐng)域,幾乎涉及到各種各樣的HPC高性能計(jì)算的領(lǐng)域都有CUDA的身影出現(xiàn),甚至現(xiàn)在HPC進(jìn)入排行榜前100的高性能計(jì)算機(jī)里面也有使用NVIDIA的Tesla系統(tǒng),GPU集群就是配置成高性能計(jì)算機(jī)的集群數(shù)量已經(jīng)達(dá)到了30個(gè),我國(guó)大陸也有采用。CUDAC語(yǔ)言是一個(gè)跨操作系統(tǒng)的開發(fā)工具,現(xiàn)在支持Windows、Linux、MacOS,幾乎最主流的操作系統(tǒng)都支持,SUN公司的Solaris系統(tǒng)也會(huì)支持。一些數(shù)學(xué)軟件像Matlab、Mathematica、LabView都有CUDA的插件,可以使用C語(yǔ)言的插件讓他更容
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 14629.3-2008灘二毛皮、灘羔皮》專題研究報(bào)告
- 《GBT 15248-2008金屬材料軸向等幅低循環(huán)疲勞試驗(yàn)方法》專題研究報(bào)告
- 道路安全業(yè)務(wù)培訓(xùn)課件
- 2025-2026年湘教版四年級(jí)語(yǔ)文上冊(cè)期末試題解析+答案
- 道路交通安全學(xué)課件
- 2025-2026年蘇教版初三化學(xué)上冊(cè)期末考試題目及答案
- 2026年廣東省肇慶市高職單招語(yǔ)文試題及答案
- 迪拜阿迪達(dá)斯介紹
- 新高一化學(xué)暑假銜接(人教版):第08講 氯氣的實(shí)驗(yàn)室制法及氯離子的檢驗(yàn)【學(xué)生版】
- 事業(yè)單位會(huì)計(jì)政府會(huì)計(jì)自制度筆試題
- 天津市-2024年-社區(qū)工作者-上半年筆試真題卷
- GB/T 44545-2024制冷系統(tǒng)試驗(yàn)
- 脾約免疫細(xì)胞在腸道菌群維持穩(wěn)態(tài)中的作用
- DBJ 53∕T-23-2014 云南省建筑工程施工質(zhì)量驗(yàn)收統(tǒng)一規(guī)程
- 物資、百貨、五金采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 2024年安防電子市場(chǎng)洞察報(bào)告
- 3D打印技術(shù)合同
- 期末專題復(fù)習(xí):09-語(yǔ)法、對(duì)聯(lián)課件 統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 棒壘球課教案(完美版)
- 注塑拌料作業(yè)指引 配料作業(yè)指導(dǎo)書全套
- DL/T 5097-2014 火力發(fā)電廠貯灰場(chǎng)巖土工程勘測(cè)技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論