cuda和opencl哪個(gè)快 為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計(jì)算?
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計(jì)算?雖然NVIDIA顯卡有CUDA,amd顯卡也有OpenCL。事實(shí)上,CUDA和OpenCL都是為了滿足通用并行計(jì)算的需求而設(shè)計(jì)的。
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計(jì)算?
雖然NVIDIA顯卡有CUDA,amd顯卡也有OpenCL。事實(shí)上,CUDA和OpenCL都是為了滿足通用并行計(jì)算的需求而設(shè)計(jì)的。然而,CUDA是一個(gè)成熟的開發(fā)平臺(tái),它為NVIDIA提供了一個(gè)完整的工具包,相對(duì)來(lái)說(shuō)更加專業(yè)和封閉。OpenCL是一個(gè)開放的標(biāo)準(zhǔn),被許多軟硬件制造商廣泛使用。
就科學(xué)計(jì)算而言,CUDA對(duì)開發(fā)人員更友好,應(yīng)用更廣泛。這與CUDA相對(duì)完整的開發(fā)工具包有很大關(guān)系。經(jīng)過(guò)多年的開發(fā),CUDA擁有比OpenCL更好的生態(tài)系統(tǒng),它更易于使用,對(duì)程序員也更友好。雖然OpenCL是開放的,但是它的API設(shè)計(jì)很怪異,缺乏一致性,并且它的函數(shù)不是正交的,這并不簡(jiǎn)單,它還遠(yuǎn)遠(yuǎn)不夠成熟。
Amd顯卡目前不支持CUDA,但只能支持OpenCL。在一些科學(xué)計(jì)算程序中,AMD顯卡的計(jì)算效率明顯低于N顯卡。這就是CUDA的優(yōu)勢(shì)。amd之所以沒有像CUDA那樣開發(fā)API,是因?yàn)閍md沒有足夠的實(shí)力來(lái)制定這個(gè)標(biāo)準(zhǔn)。英偉達(dá)早在2006年就開始在gtx8800顯卡上推出CUDA,經(jīng)過(guò)這么多年的發(fā)展,英偉達(dá)已經(jīng)投入了巨大的人力物力取得了今天的成績(jī),包括一年一度的GTC大會(huì),在CUDA和相關(guān)技術(shù)推廣方面做了大量的工作,而amd顯然缺乏這樣的工作。
事實(shí)上,作為同時(shí)開發(fā)CPU和GPU的半導(dǎo)體制造商,AMD要做到這一點(diǎn)并不容易。在資金不能大幅度增長(zhǎng)的情況下,顯卡業(yè)務(wù)只要做好自己的工作就非常好。至于新的API標(biāo)準(zhǔn),顯然很難做到。我們只能期待OpenCL有一個(gè)更好的未來(lái)。
現(xiàn)在做C 服務(wù)器,還有前景嗎?
你很清楚有。C語(yǔ)言功能強(qiáng)大、速度快、效率高,能夠提供優(yōu)秀的并發(fā)支持。C非常適合于對(duì)高性能和低延遲應(yīng)用程序進(jìn)行優(yōu)先級(jí)排序。它支持從游戲中的三維圖形到金融實(shí)時(shí)數(shù)學(xué)解決方案的廣泛應(yīng)用。它的多功能性使得C擴(kuò)展到許多不同的行業(yè),從運(yùn)輸?shù)街圃斓接螒蜷_發(fā)。
C通常用于物聯(lián)網(wǎng)。它非常擅長(zhǎng)高級(jí)編程。隨著科技的發(fā)展,物聯(lián)網(wǎng)的概念應(yīng)運(yùn)而生。基本上,這意味著您可以在設(shè)備之間創(chuàng)建連接、交換、處理和存儲(chǔ)信息,而無(wú)需人工干預(yù)。這是一個(gè)非常通用的術(shù)語(yǔ),用于描述最初沒有互聯(lián)網(wǎng)連接的所有嵌入式設(shè)備。C語(yǔ)言功能強(qiáng)大,在物聯(lián)網(wǎng)中應(yīng)用非常普遍。在過(guò)去的幾年里,物聯(lián)網(wǎng)市場(chǎng)取得了巨大的增長(zhǎng)。隨著越來(lái)越多的公司投資于最新的技術(shù)來(lái)改善他們的業(yè)務(wù),C可以讓你接觸到許多有趣的物聯(lián)網(wǎng)項(xiàng)目。
如果您目前是一名C工程師,您可以查看tiobe編程語(yǔ)言的趨勢(shì)圖。tiobe索引將C列為2018年第三大流行語(yǔ)言,僅次于Java,自2002年以來(lái),C一直排在第三位。Pypl是一項(xiàng)關(guān)于在Google上搜索語(yǔ)言教程頻率的調(diào)查,它將C排在第六位,這表明開發(fā)人員正在積極提高自己的C技能。
GitHub的“語(yǔ)言通緝”排名進(jìn)一步證明了這一點(diǎn),這是一種開發(fā)人員尚未學(xué)會(huì)但希望在未來(lái)使用的語(yǔ)言。C排在第六位,GitHub社區(qū)表示他們打算一次學(xué)習(xí)10%的語(yǔ)言。從這個(gè)角度看,C語(yǔ)言仍然具有學(xué)習(xí)價(jià)值。
openclcuda選哪個(gè)?
在許多方面,CUDA和OpenCL之間的關(guān)系類似于DirectX和OpenGL之間的關(guān)系。與DirectX和OpenGL、CUDA和OpenCL一樣,前者是一個(gè)成熟的NVIDIA開發(fā)平臺(tái),具有完整的工具包,后者是一個(gè)開放的標(biāo)準(zhǔn)。盡管他們有相同的目標(biāo):通用并行計(jì)算。但CUDA只能在NVIDIA的GPU硬件上運(yùn)行,OpenCL的目標(biāo)是面對(duì)任何類型的大規(guī)模并行處理器,期望為不同類型的硬件提供相同的編程模型。