国产成人福利在线视频播放下载,成人无码www免费视频在线看,放荡的美妇在线播放,大地资源网最新更新,国产成人精品日本亚洲网站

泡泡網(wǎng)顯卡頻道 PCPOP首頁      /      顯卡     /      新聞    /    正文

無人機/機器人開發(fā) 如何優(yōu)化深度學習?

    從能夠自主飛行的無人機,到能和小朋友玩物體識別等游戲的機器人,極客們對智能設備追求沒有止境。除了輕巧的體積、超長的續(xù)航,更重要的是要有一個智能的“大腦”,來實現(xiàn)人類能夠想得到的人機交互,或者智能化的自主決策和行為動作,毫無疑問強大的深度學習能力不可或缺。那么,拒絕束縛人類想象力的嵌入式智能設備,其開發(fā)工作需要什么樣的環(huán)境和工具?開發(fā)者進行相關開發(fā)的可行思路是什么?近日,CSDN記者就此專訪了智能設備重度開發(fā)者、高性能計算專家趙開勇(博客:http://blog.csdn.net/openhero)。

    > 趙開勇,香港浸會大學計算機計算機系異構計算實驗室在讀博士,長期從事高性能計算領域研究,在CPU、GPU異構計算方面有多年的研究經(jīng)驗,嘗試過多種嵌入式開發(fā)平臺,曾在2013年初預言基于移動設備的高性能計算將會成為未來潮流。

    CSDN:對于嵌入式領域的人工智能應用開發(fā)工作,您認為計算方面的挑戰(zhàn)有什么不同?

    趙開勇:智能應用基本都需要使用深度學習做視覺處理、語音識別,深度學習可以說是構建智能應用的大腦的必備工具?,F(xiàn)在的深度神經(jīng)網(wǎng)絡參數(shù)一般都比較龐大,上百層的網(wǎng)絡已經(jīng)不少,并且每一層又有很多參數(shù)。如果是按照F32的數(shù)據(jù),就需要耗費幾百MB的內存。所以如何把網(wǎng)絡數(shù)據(jù)變小,同時又不損失精度,這是在嵌入式領域做人工智能的挑戰(zhàn)之一。

    另一個方面,嵌入式的平臺的計算能力也比不上傳統(tǒng)的PC,計算能力有限,一些復雜的神經(jīng)網(wǎng)絡也需要在嵌入式平臺上做相應的優(yōu)化,才能在嵌入式平臺上達到接近PC上的神經(jīng)網(wǎng)絡的速度。

    總而言之,嵌入式平臺上的計算能力和計算資源有限都是深度學習在嵌入式平臺上的挑戰(zhàn)。

    CSDN:能否介紹近期您有做過哪些相關的嘗試?

    趙開勇:我借助NVIDIA最近推出的Jetson TX1平臺開發(fā)了一些圖像處理的應用(細節(jié)暫時不便公布),采用的算法主要是深度學習中最常用的卷積神經(jīng)網(wǎng)絡(CNN),它能夠解決圖像處理的大部分問題。CNN的關鍵是卷積層,卷積可以看做是對圖像做濾波提取特征值,但是需要大量的計算——目前能work的眾多CNN網(wǎng)絡,卷積部分占了70%以上的計算時間,所以這部分的優(yōu)化是很有必要的。

    我基于Jetson TX1針對卷積計算做了一些性能上的優(yōu)化,包括讓CPU、GPU、內存在最高頻率中運行,以及內存優(yōu)化,就是CPU、GPU內存協(xié)同調度。

    GPU優(yōu)化的考慮,我認為是算法>并行化>硬件特性。除了降低算法復雜度的考慮,并行計算就是空間換時間,重要的兩個方面是更多利用高效的緩存空間,和針對硬件并發(fā)特性更高效地利用網(wǎng)絡并發(fā)。所有的卷積核可以一起對一張圖片進行卷積運算,分別存儲到不同的位置,這樣不需要多次訪問圖片,但會增加內存的使用量。同時,我們可以把卷積核心和圖像展開,卷積問題轉換成矩陣乘法。相比于矩陣乘法,采用快速傅里葉變換(FFT)可能更快,但FFT會存在精度不足的問題,比如機器人的視覺識別、無人機的避障可能會受到影響。

    在GPU上的優(yōu)化乘法,需要對硬件架構有比較深入的了解。但是再深入考慮,可以抓住以下幾個點:

    1. 了解IO訪問的情況和IO的性能;

    2. 多線程的并行計算特性;

    3. IO和并行計算間的計算時間重疊。

    NVIDIA的GPU內存訪問的一個特性,連續(xù)合并訪問,可以很好地利用硬件的帶寬。從架構來看,優(yōu)化IO訪問,即使核心數(shù)目沒增加多少,架構也沒太大變化,只是在幾個計算流處理器中間增加緩存,就能提高很大的性能。所以說,矩陣乘法的優(yōu)化,要充分利用GPU里面的緩存機制,也就是shared memory和register,盡量把多個數(shù)據(jù)都放到里面,多次讀寫的速度就會快很多。

無人機/機器人開發(fā) 如何優(yōu)化深度學習?

經(jīng)典的GPU內存架構與線程模型

    另外一個技巧,在考慮對A矩陣和B矩陣的訪問時,可以把B矩陣的數(shù)據(jù)大量放到shared memory里面,提高shared memory的公用性。

    > Jetson TX1是NVIDIA針對無人機、機器人、智能車載等智能設備領域推出的GPU模塊,基于Tegra X1處理器打造,包括一個基于Maxwell架構、256個CUDA核心、浮點運算能力達到Teraflop級的GPU,64位ARM A57芯片組、4GB LPDDR4 RAM 內存(每秒帶寬速度達25.6Gbps)、16GB本地存儲模塊、802.11 2×2 ac Wi-Fi解決方案以及1Gbps以太網(wǎng)端口,同時還配備面向視覺計算的Jetson TX1開發(fā)者套件。

無人機/機器人開發(fā) 如何優(yōu)化深度學習?

(Jetson TX1,圖片來自NVIDIA官網(wǎng))

    CSDN:Jetson TX1能解決您剛才談到的兩個挑戰(zhàn)嗎?有哪些環(huán)節(jié),在采用Jetson TX1之前實現(xiàn)起來比較困難?

    趙開勇:其實嵌入式人工智能應用需要的不僅僅是計算。選擇TX1主要有四個理由:

    1. 計算模塊從I/O擴展開發(fā)平臺獨立,TX1的核心板只有卡片大小(50 mm x 87 mm),所以可以很方便做前期的驗證平臺,甚至直接上產(chǎn)品而不需要再做設計。

    2. 性能方面接近1024G flops的F16計算能力,只有10w左右的功耗,完全支持CUDA和cuDNN的接口,可以很方面地把PC上訓練的深度神經(jīng)網(wǎng)絡直接porting到Tegra X1的嵌入式平臺上。

    3. TX1提供豐富的硬件接口,可以很方面接入各種硬件設備,包括攝像頭、各種傳感器等。

    4. TX1開發(fā)者套件利用Linux環(huán)境進行了預先閃存處理,支持許多常見的API,受NVIDIA完整開發(fā)工具鏈的支持。此外,NVIDIA的工具對Caffe等主流的深度學習開源軟件支持得很好。

無人機/機器人開發(fā) 如何優(yōu)化深度學習?

(圖片來自NVIDIA官網(wǎng))

    談到使用TX1才能做到的,尺寸和功耗的優(yōu)化無疑是令人激動的,但我最看重還是視覺計算性能——卷積計算的優(yōu)化對于我們的應用迭代實在太重要了。雖然目前的深度學習硬件類型比較多,但是真正能快速形成戰(zhàn)斗力的,還是CUDA硬件+CUDA深度學習軟件。GPU架構本身就是一種可編程的并行計算架構,并行計算在70年代就有很多很好的算法。但NVIDIA在核心數(shù)量、浮點運算能力、內存等方面的進展,使得GPU性能能夠不斷增長,256核心讓TX1的并行計算能力更好。

    另外很重要的一點,Tegra采用與臺式機一樣的架構,所以個人開發(fā)者也可以在臺式機上用更強的游戲卡(推薦Titan系列)來訓練深度神經(jīng)網(wǎng)絡,然后很方便地移植到嵌入式平臺上,有利于復雜多維空間圖像信息的快速處理。

    CSDN:您談到性能,也曾預言基于移動設備的高性能計算將會成為未來潮流,現(xiàn)在Jetson TX1提供Teraflop級的浮點運算能力,在實際測試中的表現(xiàn)符合您的預期嗎?

    趙開勇:預言不用交稅,但技術突破需要很多工作。TX1的計算能力確實達到了Teraflop級別,在一張信用卡大小的系統(tǒng)上實現(xiàn),為嵌入式智能設備開發(fā)者提供了一個很好的平臺,同時我們也看到,目前只是F16的,而很多深度學習或者神經(jīng)網(wǎng)絡是F32的,所以還有一定的局限性,當然技術會不斷地發(fā)展。另一方面TX1的真正的應用還是比較少,雖然NVIDIA在TX1上提供了大量的軟件包,但是在實際生成中大規(guī)模的使用TX1的還是太少,還需要更多的人員參與到TX1的應用開發(fā)中來,TX1的性能才能真正發(fā)揮出來。

    其實NVIDIA在TX1的軟件方面已經(jīng)提供了大量的支持,因為TX1上使用的是PC級別的GPU架構,可以很方便地把PC上的一些應用直接porting到TX1上來。不過,真正了解如何把深度神經(jīng)網(wǎng)絡優(yōu)化到TX1上,還需要更多的人參與。

    對于TX1的性能本身,我認為,嵌入式高性能計算平臺在不久的將來還會有更高的性能,TX1只是一個起步。

    CSDN:能否談談CPU、GPU內存協(xié)同調度的經(jīng)驗?

    趙開勇:TX1的CPU和GPU其實是共享一片硬件內存,所以在使用的時候,需要注意內存的管理,需要采用高效的內存管理方法來做開發(fā)。當然內存調度管理是所有開發(fā)平臺都需要注意的事情,只是在TX1可能會體現(xiàn)得更明顯——如果內存調度管理不好,在GPU上實現(xiàn)的高性能應用可能會受到內存制約,使得性能下降很多,在嵌入式平臺上性能就會損失更多。

    前面提到過,想要實現(xiàn)更好的優(yōu)化,需要了解GPU內部的硬件架構,包括內存架構和線程模型。這方面的入門知識,可以參考我的CSDN博客文章:http://blog.csdn.net/openhero/article/details/42131771

    CSDN:您是否還嘗試過其他類型的嵌入式開發(fā)平臺?和Jetson TX1的開發(fā)體驗相比有什么區(qū)別?

    趙開勇:嘗試過一些。有的提供更簡單的開發(fā)平臺,但是沒有TX1的性能高,很難做出一些真正酷的應用;有的開發(fā)難度更大,提供的軟件資源不多。

    CSDN:最近有一些無人駕駛汽車撞人、無人機墜毀的新聞,基于Jetson TX1的開發(fā)也有一些安全方面的優(yōu)勢嗎?

    趙開勇:這其實和硬件關系不大,重要的是開發(fā)過程中需要對安全有更高層次的考慮,需要考慮如何結合更多的傳感器,盡量把各種可能性都編寫到程序中,以避免安全事故的發(fā)生。

    當然,增加傳感器也需要計算的支持,只有豐富的計算性能和計算資源才能提供各種傳感器融合所需的性能。從這個角度來看,TX1有解決安全問題的優(yōu)勢,因為這個平臺上有豐富的計算資源,而且在未來的版本中可能會有更高的計算能力。

    CSDN:您認為TX1只是一個起步,那么對于它的升級版本的能力,包括編程的支持,您還有哪些期待?

    趙開勇:主要是如下幾個方面:

    1. 更高的性能,更多的功耗,更小的硬件平臺,不需要太多的外圍設備,把核心板做得更小。

    2. 編程方面支持更多的直接從PC移植,更好的工具將PC上開發(fā)深度網(wǎng)絡,直接優(yōu)化到TX1的平臺上。

    3. 提供更多穩(wěn)定豐富的SDK,在PC上提供相同的開發(fā)軟件包,這樣就可以在PC上很快速地開發(fā),然后移植到TX1上。

    小結

    在VR、機器人、無人機、自動駕駛泛濫的時代,將人工智能技術應用到嵌入式和移動領域的技術趨勢已經(jīng)不可阻擋,但這些應用的開發(fā),需要計算資源和開發(fā)接口、開發(fā)工具的支持。從趙開勇的嘗試來看,Jetson TX1平臺具有強大的計算能力,同時提供了豐富的開發(fā)資源,以及PC移植的能力,能夠讓開發(fā)者更容易地開發(fā)出想得到的應用。■

0人已贊

關注我們

泡泡網(wǎng)

手機掃碼關注