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

近年來,發展勢頭之迅猛唯一能與AI相匹敵的現象就是Python編程語言。對於許多在紛紛設立數據科學和機器學習部門的企業組織來說,Python已成為了首選語言。改用Python的步伐太快了,以至於許多編程語言被認為已過時了。

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

然而,特斯拉首席執行官Elon Musk在一連串推文中宣佈,特斯拉有多麼重視召集一流人才來開發與AI有關的項目。他還宣佈準備在家中辦一場招待會,邀請AI愛好者參加黑客馬拉松(hackathon)。

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

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

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

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

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

馬斯克稱:我們(顯然)也在尋找世界一流的芯片設計師加入我們在帕洛阿爾託和奧斯汀的團隊。我們的神經網絡最初使用Python以便快速迭代,然後轉換成C++/C/裸機驅動程序代碼以提高速度(這很重要!)。另外,車輛控制和自動駕駛汽車其餘全部都需要大批的C++/C工程師。學歷不重要,但都必須通過實打實的編程測試。

然而,不可對推文信以為真。信息量常常被壓縮,PyTorch的共同開發者Soumith Chintala點明瞭Musk真正的含意。他解釋道,轉換成C++並不意味著要使用C++手動重寫,而是自動轉換成低級運行時代碼。

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

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

工具盲目崇拜的詛咒

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

大多數流行的機器學習框架都依賴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++在庫和框架的後臺處理所有繁重任務(讀取矩陣乘法)。

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

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

1、如果用戶想在每秒幀數高、延遲低的要求下在純粹的C++遊戲引擎中進行強化學習研究,對於這種環境而言,使用純粹的C ++庫比Python庫要適合得多。

2、由於全局解釋器鎖(GIL),Python一次無法運行多個系統線程。多重處理是一種替代方法,但擴展性欠佳,並存在諸多缺點。C++沒有這樣的約束或限制,而且它的線種易於使用和創建。

3、前端的C++將允許用戶繼續使用C++,無需在訓練期間在Python和C++之間來回切換。

然而,由於Python解釋器速度慢,因此對於增強學習項目之類的研究工作而言,Python可能仍難以處理。因此,C++庫將是正確的選擇。

就TensorFlow而言,總體上來說結合了經過高度優化的C++和CUDA。反過來,它們又使用Eigen(高性能C++和CUDA數值庫)和英偉達的cuDNN優化深度神經網絡庫用於卷積之類的功能。

選擇任何語言或工具歸結為在執行簡易性和延遲之間作一個取捨。對於機器學習方面的主題專家來說,擁有C++方面的知識這個要求未免太高了。他們可以使用Python,而C++開發人員編寫與機器進行交互的代碼。這種安排對許多企業組織來說很好。這就是為什麼特斯拉的AI團隊需要Python開發人員和C++開發人員組成的隊伍來構建下一代自主產品實乃明智之舉。

作者簡介:武漢維識教育科技有限公司創立於“武漢·中國光谷”,專注於人工智能、機器人工程、智能製造工程、雲計算、大數據及區塊鏈信息技術安全等人工智能及網絡安全領域的多維教育。系人社部“工業機器人系統操作員培訓規範”標準制定單位之一。公司以工業機器人、智能機器人為主要載體,已建立完善詳盡的人工智能、機器人工程及智能製造工程專業整體解決方案,並與全國100餘所高校建立合作關係;網絡安全教育涉及身份安全、業務安全、數據安全與終端安全四大板塊。


分享到:


相關文章: