項(xiàng)目簡(jiǎn)介
“人工智能(AI)”這個(gè)詞可能是當(dāng)下科技資訊中曝光率高的詞匯了,聽(tīng)得人耳朵都起繭子了。至于什么是人工智能,為什么說(shuō)人工智能是第四次工業(yè)革命,小編在這里就不啰嗦了。小編想說(shuō)的是,人工智能目前給人的感覺(jué)是:*的 CPU 處理能力 + 高性能 GPU、TPU 異構(gòu)計(jì)算平臺(tái),其實(shí)這是一個(gè)誤區(qū),未來(lái)的人工智能將“無(wú)處不在”,大到超級(jí)計(jì)算機(jī),小到一顆物聯(lián)網(wǎng)芯片。人工智能很好的彌補(bǔ)了傳統(tǒng)計(jì)算體系的缺陷,使計(jì)算機(jī)系統(tǒng)真正有了智慧。讓計(jì)算機(jī)擁有智慧的過(guò)程,與人類(lèi)對(duì)事物的認(rèn)知過(guò)程一樣,首先需要學(xué)習(xí)(機(jī)器學(xué)習(xí)),我們稱(chēng)之為訓(xùn)練的過(guò)程,訓(xùn)練過(guò)程實(shí)際上是讓機(jī)器掌握一類(lèi)事物的規(guī)律(經(jīng)驗(yàn)),然后可利用這個(gè)經(jīng)驗(yàn)來(lái)推理未來(lái)事物的規(guī)律。從已知推理未知這就是智慧。
在機(jī)器學(xué)習(xí)這個(gè)技術(shù)發(fā)展的過(guò)程中,有一種方法脫穎而出,叫做“深度學(xué)習(xí)(Deep Learning)”,目前熱火朝天的人工智能,大多數(shù)都是基于深度學(xué)習(xí)的方法設(shè)計(jì),為了加速這個(gè)學(xué)習(xí)過(guò)程,我們一般使用高性能的計(jì)算機(jī)平臺(tái)進(jìn)行訓(xùn)練,當(dāng)計(jì)算機(jī)積累的經(jīng)驗(yàn)足以能夠處理某種問(wèn)題時(shí),我們就說(shuō)這個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)訓(xùn)練好了,可以進(jìn)行正常的推理工作了,那么問(wèn)題來(lái)了:訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)(NN)是否必須使用高性能處理器進(jìn)行推理工作?答案是否定的,在高性能計(jì)算機(jī)上訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,*可以裝入一顆嵌入式處理器上運(yùn)行,這就是今天要說(shuō)明的重點(diǎn):嵌入式人工智能。

由于人工智能具備可訓(xùn)練可推理能力,用簡(jiǎn)單的話講:可以像大腦一樣運(yùn)算,那么人工智能的運(yùn)算結(jié)果跟大腦一樣,是一個(gè)概率性推斷,所以如果將人工智能應(yīng)用在一些“與人生命息息相關(guān)”的產(chǎn)品中,例如自動(dòng)駕駛,則需要考慮形式化的“安全邊界”設(shè)計(jì),最近幾起自動(dòng)駕駛致人死亡的悲劇恰恰說(shuō)明了“安全邊界”與傳統(tǒng)“系統(tǒng)工程”安全設(shè)計(jì)的重要性。那么能不能將傳統(tǒng)“系統(tǒng)工程”安全設(shè)計(jì)方法與“人工智能”融合?答案是可能的(系統(tǒng)工程是個(gè)復(fù)雜的安全體系,不只涉及軟件安全邊界與容錯(cuò),也涉及硬件與傳感器安全與容錯(cuò)設(shè)計(jì))。
翼輝信息在時(shí)間已經(jīng)開(kāi)始跟蹤人工智能技術(shù),我們要解決的核心問(wèn)題是:人工神經(jīng)網(wǎng)絡(luò)如何在嵌入式處理器上運(yùn)行,如何讓傳統(tǒng)的經(jīng)過(guò)安全性驗(yàn)證的嵌入式平臺(tái)(SylixOS 正在進(jìn)行 IEC61508、EN50129 相關(guān)認(rèn)證)運(yùn)行人工神經(jīng)網(wǎng)絡(luò)。這些問(wèn)題的細(xì)節(jié),我們將會(huì)以連載的方式慢慢闡述。
下面給大家匯報(bào)點(diǎn)階段性成果:
目前較為流行的深度學(xué)習(xí)框架包括:TensorFlow、Caffe、MXNet 等等,這些框架支持的神經(jīng)網(wǎng)絡(luò)模型可以通過(guò)對(duì)應(yīng)的工具進(jìn)行相互轉(zhuǎn)換。SylixOS 目前支持的深度學(xué)習(xí)框架為:TensorFlow 與 NCNN。
目前 SylixOS 平臺(tái)支持的深度學(xué)習(xí)模型有兩大特點(diǎn):
1.支持多種深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)導(dǎo)入與運(yùn)行;
2.可跨平臺(tái)運(yùn)行神經(jīng)網(wǎng)絡(luò)模型(ARM、x86、MIPS、PowerPC……)。
基于以上特點(diǎn),用戶可方便選擇自己合適的硬件平臺(tái),也能使用自己熟悉的深度學(xué)習(xí)框架進(jìn)行人工神經(jīng)網(wǎng)絡(luò)訓(xùn)練開(kāi)發(fā),將訓(xùn)練好的模型導(dǎo)入到 SylixOS AI 平臺(tái)都是非常的容易。
這里插一句:關(guān)于硬件加速,由于人工神經(jīng)元實(shí)際上是使用形式化的卷積神經(jīng)模型來(lái)模擬生物學(xué)上神經(jīng)元的工作過(guò)程,這個(gè)計(jì)算過(guò)程會(huì)涉及到大量向量、矩陣、張量的計(jì)算,傳統(tǒng)的 CPU 設(shè)計(jì)就顯得力不從心,所以當(dāng)前引入了很多異構(gòu)向量運(yùn)算協(xié)處理器來(lái)加速神經(jīng)網(wǎng)絡(luò)計(jì)算,例如:GPU、TPU 這些協(xié)處理器的使用,可以大大提升卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算速度,當(dāng)然傳統(tǒng) CPU 也并不是說(shuō)對(duì)于向量計(jì)算毫無(wú)優(yōu)化,例如:ARM的NEON 單指令多數(shù)據(jù)流(SIMD)向量指令集,x86 的 AVX 向量指令集和 CETC 中電十四所華睿2號(hào)向量處理器等,只要能夠合理利用這些向量指令,在推理運(yùn)算過(guò)程中,也可以獲得較為滿意的加速效果。

我們來(lái)看看實(shí)際效果:
NCNN 目前支持的 ARM 與 x86 平臺(tái)都已在 SylixOS 操作系統(tǒng)上運(yùn)行成功。
需要說(shuō)明的是:NCNN 可以使用 ARM NEON 向量指令集和 x86 AVX 向量指令集進(jìn)行運(yùn)算加速。同時(shí) SylixOS 支持 OpenMP 并行計(jì)算,本次測(cè)試也默認(rèn)啟動(dòng)了并行計(jì)算加速。
本次測(cè)試使用 squeezenet v1.1 模型,測(cè)試數(shù)據(jù)為一張北極狐的照片:

硬件平臺(tái):Zynq7000 ARM Cortex-A9 雙核,667-800MHz 主頻(使用 NEON 指令加速)

加載并運(yùn)行 NCNN:


硬件平臺(tái):x86 Core i5-4590(啟用 AVX、SSE 指令加速)


以上測(cè)試中一個(gè)訓(xùn)練好的實(shí)例神經(jīng)網(wǎng)絡(luò),在不同的硬件平臺(tái)上均能夠正確判斷出目標(biāo)圖片:北極狐。
經(jīng)過(guò)變換輸入圖片包括:老虎、鴨子、飛機(jī)等多種輸入源,均能夠正確判斷。
TensorFlow 是基于 DistBelief 進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),其命名來(lái)源于本身的運(yùn)行原理。Tensor 意味著 N 維數(shù)組,F(xiàn)low 意味著基于數(shù)據(jù)流圖的計(jì)算,TensorFlow 為張量從流圖的一端流動(dòng)到另一端計(jì)算過(guò)程。TensorFlow 是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過(guò)程的系統(tǒng)。
之前提到嵌入式人工智能核心的任務(wù)為推理過(guò)程,在目標(biāo)機(jī)上一般除收集數(shù)據(jù)外,不進(jìn)行訓(xùn)練操作(一般為后臺(tái)訓(xùn)練),所以我們?cè)趯?shí)際使用過(guò)程中,可直接使用僅支持推理功能的 TensorFlow Lite。
本次測(cè)試使用提供的 net 訓(xùn)練模型。
測(cè)試程序未啟用硬件加速功能,也未使用 CPU 的 SIMD 指令加速,將在后續(xù)版本加入支持。
我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的可視化程序來(lái)顯示推理結(jié)果:

識(shí)別程序運(yùn)行時(shí),SylixOS 命令行終端的輸出如下:

以上測(cè)試結(jié)果顯示,程序能夠正確識(shí)別出目標(biāo)為:金毛獵犬。
更多功能和計(jì)劃
我們將面向:自動(dòng)駕駛、機(jī)器人(ROS-RT)、智能交通、智能系統(tǒng)等領(lǐng)域推出跨平臺(tái)的人工智能產(chǎn)品。能夠支持:ARM、MIPS、x86、PowerPC、RISC-V 等處理器。
我們將推出基于 SylixOS 操作系統(tǒng)的“卷積運(yùn)算協(xié)處理器”標(biāo)準(zhǔn)加速接口。
再未來(lái):我們會(huì)推出 RISC-V +AI 單芯片 SoC 人工智能解決方案,從應(yīng)用層、操作系統(tǒng)、驅(qū)動(dòng)程序到 CPU + AI 硬件加速等,提供優(yōu)化的一體化人工智能解決方案。
目標(biāo):我們會(huì)推出全套圖形化 AI 開(kāi)發(fā)系統(tǒng),在 IDE 中集成 AI 專(zhuān)屬工程類(lèi)型(訓(xùn)練、推理),支持各種圖形化、可視化 AI 數(shù)據(jù)工具。
嵌入式人工智能時(shí)代已經(jīng)來(lái)臨,他已經(jīng)不只是個(gè)噱頭、熱點(diǎn)詞匯,更可以與傳統(tǒng)計(jì)算平臺(tái)融合為一體,成為一個(gè)可落地,應(yīng)用領(lǐng)域廣泛的新一代計(jì)算技術(shù)。