keras如何跑gpu 為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計算?
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計算?NVIDIA顯卡雖說有cuda,但是AMD顯卡也有opencl啊,其實不管是CUDA還是OpenCL,兩者都是為了滿足通用并行計算
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學(xué)計算?
NVIDIA顯卡雖說有cuda,但是AMD顯卡也有opencl啊,其實不管是CUDA還是OpenCL,兩者都是為了滿足通用并行計算,但是cuda是配備完整工具包、針對單一供應(yīng)商(NVIDIA)的成熟的開發(fā)平臺,相對來說更加專用化和封閉化,而opencl則是一個開放的標(biāo)準(zhǔn),被許多軟件和硬件廠商所使用,范圍比較廣。
就科學(xué)計算來說,確實目前對開發(fā)者更友好的cuda使用面更廣,這與cuda擁有相對完整的開發(fā)套件有很大關(guān)系,經(jīng)過多年的發(fā)展,cuda已經(jīng)有遠(yuǎn)好于OpenCL的生態(tài)系統(tǒng),更易用,對程序員更友好,而OpenCL盡管開放,但是API設(shè)計怪異,缺乏一致性,功能亦不正交,很不直觀,遠(yuǎn)未成熟。
AMD顯卡目前是無法支持cuda而只能支持opencl的,在一些科學(xué)計算程序中,AMD顯卡的計算效率確實明顯不如N卡,這里就是cuda的優(yōu)勢所在了,之所以AMD沒有開發(fā)類似cuda這樣的api主要還是在于AMD沒有足夠的實力制定這項標(biāo)準(zhǔn),而NVIDIA早在2006年的GTX8800顯卡上就啟用cuda計劃了,這么多年的發(fā)展nvidia也投入了巨大的人力物力才獲得今天的成就,包括每年的GTC大會都對cuda和相關(guān)技術(shù)的推廣做了大量工作,而AMD顯然缺乏這方面的工作。
其實AMD作為同時研發(fā)CPU和GPU的半導(dǎo)體廠商,能做到這樣就很不容易了,在資金無法大幅增長的情況下,顯卡業(yè)務(wù)只要做好本職工作就很不錯了,至于弄什么新api標(biāo)準(zhǔn)顯然很難做到,只能期待OpenCL的未來能更加美好吧。
學(xué)Python一定要會算法嗎?
剛開始入門時,不是必須學(xué)好算法的。但是隨著技術(shù)的深入,算法還是需要的,不然只能干點"搬磚"的活兒。
1、學(xué)好軟件開發(fā)離不開計算機(jī)理論基礎(chǔ),如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)技術(shù)、算法研究等。如果熱愛這門技術(shù),這些都是不問題,先入門,這些慢慢的都可以補(bǔ)上。
2、關(guān)于算法,它是軟件開發(fā)的靈魂,沒有好的算法寫不出優(yōu)秀的程序。
3、如何學(xué)習(xí)算法,首先選取經(jīng)典算法教材?;A(chǔ)的可以先從《數(shù)據(jù)結(jié)構(gòu)》學(xué)起,里面有些基礎(chǔ)算法,然后再去學(xué)專門的算法(其實把數(shù)據(jù)結(jié)構(gòu)范疇的算法學(xué)好,一般就夠用了)。還有網(wǎng)上有很多論壇,算法網(wǎng)站,為了吸引眼球 一般都做的淺顯易懂。還有大部分算法為c語言,但語言在算法層面都相通的,明白算法模型才是最重要的。
4、萬事開頭難,只要入門,剩下的就是慢慢經(jīng)營這門技術(shù)就行了。算法在實踐中學(xué)的最快也最牢固。
希望能幫到你