記者:Jetson TX1能解決您剛才談到的兩個挑戰嗎?有哪些環節,在採用Jetson TX1之前實現起來比較困難?
趙開勇:其實嵌入式人工智慧應用需要的不僅僅是計算。選擇TX1主要有四個理由:
1. 計算模塊從I/O擴展開發平臺獨立,TX1的核心板只有卡片大小(50 mm x 87 mm),所以可以很方便做前期的驗證平臺,甚至直接上產品而不需要再做設計。
2. 性能方面接近1024G flops的F16計算能力,只有10w左右的功耗,完全支持CUDA和cuDNN的接口,可以很方面地把PC上訓練的深度神經網絡直接porting到Tegra X1的嵌入式平臺上。
3. TX1提供豐富的硬體接口,可以很方面接入各種硬體設備,包括攝像頭、各種傳感器等。
4. TX1開發者套件利用Linux環境進行了預先快閃記憶體處理,支持許多常見的API,受NVIDIA完整開發工具鏈的支持。此外,NVIDIA的工具對Caffe等主流的深度學習開源軟體支持得很好。
(圖片來自NVIDIA官網)
談到使用TX1才能做到的,尺寸和功耗的優化無疑是令人激動的,但我最看重還是視覺計算性能——卷積計算的優化對於我們的應用迭代實在太重要了。雖然目前的深度學習硬體類型比較多,但是真正能快速形成戰鬥力的,還是CUDA硬體+CUDA深度學習軟體。GPU架構本身就是一種可編程的並行計算架構,並行計算在70年代就有很多很好的算法。但NVIDIA在核心數量、浮點運算能力、內存等方面的進展,使得GPU性能能夠不斷增長,256核心讓TX1的並行計算能力更好。
另外很重要的一點,Tegra採用與臺式機一樣的架構,所以個人開發者也可以在臺式機上用更強的遊戲卡(推薦Titan系列)來訓練深度神經網絡,然後很方便地移植到嵌入式平臺上,有利於複雜多維空間圖像信息的快速處理。
記者:您談到性能,也曾預言基於行動裝置的高性能計算將會成為未來潮流,現在Jetson TX1提供Teraflop級的浮點運算能力,在實際測試中的表現符合您的預期嗎?
趙開勇:預言不用交稅,但技術突破需要很多工作。TX1的計算能力確實達到了Teraflop級別,在一張信用卡大小的系統上實現,為嵌入式智能設備開發者提供了一個很好的平臺,同時我們也看到,目前只是F16的,而很多深度學習或者神經網絡是F32的,所以還有一定的局限性,當然技術會不斷地發展。另一方面TX1的真正的應用還是比較少,雖然NVIDIA在TX1上提供了大量的軟體包,但是在實際生成中大規模的使用TX1的還是太少,還需要更多的人員參與到TX1的應用開發中來,TX1的性能才能真正發揮出來。
其實NVIDIA在TX1的軟體方面已經提供了大量的支持,因為TX1上使用的是PC級別的GPU架構,可以很方便地把PC上的一些應用直接porting到TX1上來。不過,真正了解如何把深度神經網絡優化到TX1上,還需要更多的人參與。
對於TX1的性能本身,我認為,嵌入式高性能計算平臺在不久的將來還會有更高的性能,TX1隻是一個起步。
記者:能否談談CPU、GPU內存協同調度的經驗?
趙開勇:TX1的CPU和GPU其實是共享一片硬體內存,所以在使用的時候,需要注意內存的管理,需要採用高效的內存管理方法來做開發。當然內存調度管理是所有開發平臺都需要注意的事情,只是在TX1可能會體現得更明顯——如果內存調度管理不好,在GPU上實現的高性能應用可能會受到內存制約,使得性能下降很多,在嵌入式平臺上性能就會損失更多。
前面提到過,想要實現更好的優化,需要了解GPU內部的硬體架構,包括內存架構和線程模型。這方面的入門知識,可以參考我的記者博客文章:http://blog.記者.net/openhero/article/details/42131771
記者:您是否還嘗試過其他類型的嵌入式開發平臺?和Jetson TX1的開發體驗相比有什麼區別?
趙開勇:嘗試過一些。有的提供更簡單的開發平臺,但是沒有TX1的性能高,很難做出一些真正酷的應用;有的開發難度更大,提供的軟體資源不多。
記者:最近有一些無人駕駛汽車撞人、無人機墜毀的新聞,基於Jetson TX1的開發也有一些安全方面的優勢嗎?
趙開勇:這其實和硬體關係不大,重要的是開發過程中需要對安全有更高層次的考慮,需要考慮如何結合更多的傳感器,儘量把各種可能性都編寫到程序中,以避免安全事故的發生。
當然,增加傳感器也需要計算的支持,只有豐富的計算性能和計算資源才能提供各種傳感器融合所需的性能。從這個角度來看,TX1有解決安全問題的優勢,因為這個平臺上有豐富的計算資源,而且在未來的版本中可能會有更高的計算能力。
記者:您認為TX1隻是一個起步,那麼對於它的升級版本的能力,包括編程的支持,您還有哪些期待?
趙開勇:主要是如下幾個方面:
1. 更高的性能,更多的功耗,更小的硬體平臺,不需要太多的外圍設備,把核心板做得更小。
2. 編程方面支持更多的直接從PC移植,更好的工具將PC上開發深度網絡,直接優化到TX1的平臺上。
3. 提供更多穩定豐富的SDK,在PC上提供相同的開發軟體包,這樣就可以在PC上很快速地開發,然後移植到TX1上。
在VR、機器人、無人機、自動駕駛泛濫的時代,將人工智慧技術應用到嵌入式和移動領域的技術趨勢已經不可阻擋,但這些應用的開發,需要計算資源和開發接口、開發工具的支持。從趙開勇的嘗試來看,Jetson TX1平臺具有強大的計算能力,同時提供了豐富的開發資源,以及PC移植的能力,能夠讓開發者更容易地開發出想得到的應用。