特斯拉嫌棄 Python,追捧 C++

對於許多紛紛設立數據科學和機器學習部門的企業組織來說,Python已成爲了首選語言。

改用Python的步伐太快了,以至於許多編程語言被認爲已經過時了。

image

然而,特斯拉首席執行官Elon Musk在一連串推文中宣佈,特斯拉十分重視召集一流人才來開發與AI有關的項目。

他還宣佈準備在家中辦一場招待會,邀請AI愛好者參加黑客馬拉松(hackathon)。

他補充道,雖然用於計算機視覺模型的神經網絡是用Python編寫的,但特斯拉團隊需要編程技能出衆的人員,尤其是C和C++方面的。

其實做爲一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流羣1075673198,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

image

用C/C++編程以製造自動駕駛汽車聽起來很奇怪,但Musk的推文確實讓人們對Python方面的炒作產生了一些懷疑。

指出了基礎設施複雜性種種陷阱的開發人員對此並不苟同。

image

馬斯克稱:我們(顯然)也在尋找世界一流的芯片設計師加入我們在帕洛阿爾託和奧斯汀的團隊。

我們的神經網絡最初使用Python以便快速迭代,然後轉換成C++/C/裸機驅動程序代碼以提高速度(這很重要!)

另外,車輛控制和自動駕駛汽車其餘全部都需要大批的C++/C工程師。

學歷不重要,但都必須通過實打實的編程測試。

然而,不可對推文信以爲真。

信息量常常被壓縮,PyTorch的共同開發者Soumith Chintala點明瞭Musk真正的含意。

他解釋道,轉換成C++並不意味着要使用C++手動重寫,而是自動轉換成低級運行時代碼。

他還補充道,特斯拉團隊有自己的ASIC和傳感器等,這些可能有其自己的工具、驅動程序、多階段中間表示(staged IR)和編譯器等。

C ++語言還爲硬件功能的直接映射以及基於那些映射的零開銷抽象提供了便利。

工具盲目崇拜的詛咒image

大多數流行的機器學習框架都依賴C++,比如TensorFlow、Pytorch甚至CUDA。

如上所示,CUDA不僅僅是一種編程語言,更是一種工具包,爲使用C/C++的開發人員提供了擴展,以便表達大量的並行處理,並引導編譯器處理應用程序中映射到GPU的那部分。

同樣,Python也是一種接口,它讓用戶可以進行交互並利用機器學習功能,無需學習C++的基本細節。

Python主要用作一種接口。

作出這樣的安排是爲了讓更多非編程出身的開發人員可以儘快上手、構建機器學習應用程序。

Python易學易用,也正因爲如此,它才大受歡迎。

然而,如果人們從頭開始學起,會發現C ++這種傳統語言類的語言所支持的API和接口用起來很容易。

只需藉助經過優化的GPU庫(比如BLAS)和計算機視覺庫(比如OpenCV)。

總之,需要速度的一切應用都可以用C++以及Python綁定加以編寫。

與C++不同,Python用戶可以從零開始編寫一個卷積神經網絡,用不了50行代碼。

C++需要了解一些較複雜的知識,這對新手來說是一大弊端。

在這裏時間很關鍵。

比如說,整合機器學習工具的物理學家更喜歡像Python這種輕巧而簡單的編程語言。

然而,C++在庫和框架的後臺處理所有繁重任務(讀取矩陣乘法)。

image

據PyTorch團隊聲稱,前端的C++讓用戶可以在無法使用Python或Python工具不適合任務的環境中進行研究。

其實做爲一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流羣1075673198,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

優點總結如下:

  • 如果用戶想在每秒幀數高、延遲低的要求下在純粹的C++遊戲引擎中進行強化學習研究,對於這種環境而言,使用純粹的C ++庫比Python庫要適合得多。
  • 由於全局解釋器鎖(GIL),Python一次無法運行多個系統線程。多重處理是一種替代方法,但擴展性欠佳,並存在諸多缺點。C++沒有這樣的約束或限制,而且它的線種易於使用和創建。
  • 前端的C++將允許用戶繼續使用C++,無需在訓練期間在Python和C++之間來回切換。

然而,由於Python解釋器速度慢,因此對於增強學習項目之類的研究工作而言,Python可能仍難以處理。**因此,C++庫將是正確的選擇。**就TensorFlow而言,總體上來說結合了經過高度優化的C++和CUDA。反過來,它們又使用Eigen(高性能C++和CUDA數值庫)和英偉達的cuDNN優化深度神經網絡庫用於卷積之類的功能。**選擇任何語言或工具歸結爲在執行簡易性和延遲之間作一個取捨。**對於機器學習方面的主題專家來說,擁有C++方面的知識這個要求未免太高了。他們可以使用Python,而C++開發人員編寫與機器進行交互的代碼。這種安排對許多企業組織來說很好。這就是爲什麼特斯拉的AI團隊需要Python開發人員和C++開發人員組成的隊伍來構建下一代自主產品,實乃明智之舉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章