keras顯存不夠 為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學計算?
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學計算?雖然NVIDIA顯卡有CUDA,amd顯卡也有OpenCL。事實上,CUDA和OpenCL都是為了滿足通用并行計算的需求而設計的。
為什么A卡不像N卡那樣,開發(fā)類似CUDA的API,從而可以做科學計算?
雖然NVIDIA顯卡有CUDA,amd顯卡也有OpenCL。事實上,CUDA和OpenCL都是為了滿足通用并行計算的需求而設計的。然而,CUDA是一個成熟的開發(fā)平臺,它為NVIDIA提供了一個完整的工具包,相對來說更加專業(yè)和封閉。OpenCL是一個開放的標準,被許多軟硬件制造商廣泛使用。
就科學計算而言,CUDA對開發(fā)人員更友好,應用更廣泛。這與CUDA相對完整的開發(fā)工具包有很大關系。經過多年的開發(fā),CUDA擁有比OpenCL更好的生態(tài)系統(tǒng),它更易于使用,對程序員也更友好。雖然OpenCL是開放的,但是它的API設計很怪異,缺乏一致性,并且它的函數不是正交的,這并不簡單,它還遠遠不夠成熟。
Amd顯卡目前不支持CUDA,但只能支持OpenCL。在一些科學計算程序中,AMD顯卡的計算效率明顯低于N顯卡。這就是CUDA的優(yōu)勢。amd之所以沒有像CUDA那樣開發(fā)API,是因為amd沒有足夠的實力來制定這個標準。英偉達早在2006年就開始在gtx8800顯卡上推出CUDA,經過這么多年的發(fā)展,英偉達已經投入了巨大的人力物力取得了今天的成績,包括一年一度的GTC大會,在CUDA和相關技術推廣方面做了大量的工作,而amd顯然缺乏這樣的工作。
事實上,作為同時開發(fā)CPU和GPU的半導體制造商,AMD要做到這一點并不容易。在資金不能大幅度增長的情況下,顯卡業(yè)務只要做好自己的工作就非常好。至于新的API標準,顯然很難做到。我們只能期待OpenCL有一個更好的未來。
學Python一定要會算法嗎?
開始時,您不必很好地學習算法。但是隨著技術的發(fā)展,仍然需要算法,否則只能做一些工作。
1. 學好軟件開發(fā)離不開計算機理論基礎,比如數據結構、操作系統(tǒng)、網絡技術、算法研究等,如果你喜歡這項技術,那就不是問題。先開始,你可以彌補。
2. 算法是軟件開發(fā)的靈魂。好的算法寫不出好的程序。
3. 如何學習算法,首先選擇經典算法教材?;镜目梢詮臄祿Y構中學習,其中包含一些基本的算法,然后再學習特殊的算法(實際上,在數據結構領域學習算法一般就足夠了)。網上還有很多論壇、算法網站,為了吸引眼球,它們一般都很通俗易懂。大多數算法都是C語言,但是語言在算法層次上是相互聯系的,因此理解算法模型是最重要的。
4. 萬事開頭難。只要你開始,剩下的就是慢慢操作這項技術。該算法在實際應用中是最快、最強的。
我希望我能幫助你