0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

來自麻省理工的圖像設(shè)計(jì)語言Halide:AI、VR利器

SSDFans ? 來源:楊湘祁 ? 作者:電子發(fā)燒友 ? 2019-03-07 14:10 ? 次閱讀

隨著人工智能,VR等領(lǐng)域的發(fā)展,我們對(duì)于高性能圖像處理程序的需求越來越大;當(dāng)前編程工具開發(fā)的高性能圖像處理程序犧牲了程序的可讀性,模塊性,可移植性等;其主要原因是,當(dāng)前程序?qū)?a target="_blank">算法描述, 數(shù)據(jù)存儲(chǔ)以及計(jì)算糅雜一起。同時(shí)手工編寫高性能圖像處理程序開發(fā)效率較低,難以快速構(gòu)建大量高性能圖像處理代碼。

在這樣的背景下,MIT的研究人員專門為圖像處理設(shè)計(jì)了一種程序語言——Halide;Halide語言易于編寫和修改,并且能夠自動(dòng)對(duì)代碼進(jìn)行優(yōu)化,使應(yīng)用程序獲得更好的執(zhí)行效率。Halide設(shè)計(jì)的核心思想是將算法的內(nèi)容和算法的執(zhí)行耦,這樣程序員可以根據(jù)不同的設(shè)備設(shè)置不同的優(yōu)化策略,獲得更高質(zhì)量的代碼。

目前halide支持的設(shè)備情況為:

CPU架構(gòu):X86, ARM, MIPS, Hexagon, PowerPC

操作系統(tǒng)Linux, Windows, Mac OS X, Android, iOS, Qualcomm QuRT

GPU計(jì)算API:CUDA, OpenCL, OpenGL, OpenGL Compute Shaders,Apple Metal, Microsoft Direct X 12

當(dāng)前知名的自動(dòng)優(yōu)化框架,除了halide還有寒武紀(jì)的TVM,TVM在設(shè)計(jì)上借鑒了halide將算法內(nèi)容和執(zhí)行解耦的思路。本文主要主要內(nèi)容如下:

- LLVM安裝- Halide編譯- Halide程序構(gòu)建

##LLVM安裝

首先下載LLVM源代碼,源代碼下載地址為:

http://releases.llvm.org/download.html#7.0.1

halide要求LLVM的版本為6.0以上,本文使用的是7.0.1版本;

需要下載一下幾部分:

- LLVM source code (.sig)- Clang source code (.sig)- compiler-rt source code (.sig)- libc++ source code (.sig)- libc++abi source code (.sig)- clang-tools-extra (.sig) (可選)

源碼編譯LLVM:- 創(chuàng)建源碼目錄```mkdir LLVMtar xvf llvm-7.0.1.src.tar.xzmv llvm-7.0.1.src.tar.xz llvm-7.0.1cd llvm-7.0.1/tools/tar xvf cfe-7.0.1.src.tar.xz #clang的源代碼包mv cfe-7.0.1.src clangcd ../projects/tar xvf compiler-rt-7.0.1.src.tar.xztar xvf libcxx-7.0.1.src.tar.xztar xvf libcxxabi-7.0.1.src.tar.xzmv libcxx-7.0.1.src libcxxmv libcxxabi-7.0.1.src libcxxabimv compiler-rt-7.0.1.src compiler-rt```以上是目錄構(gòu)建的方法,注意需要自己將下載的源代碼包拷貝到對(duì)應(yīng)的目錄下;可選包c(diǎn)lang-tools-extra-7.0.1.src.tar.xz放到llvm-7.0.1/tools/clang/tools目錄下,解壓,重命名為extra;- build LLVM筆者在LLVM-7.0.1目錄的同一級(jí),創(chuàng)建LLVM-build目錄;```cd LLVM-buildcmake -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_TARGETS_TO_BUILD="X86;ARM;NVPTX;AArch64;Mips;PowerPC" -DLLVM_ENABLE_ASSERTIONS=ON -DCMAKE_BUILD_TYPE=Release ../LLVM-7.0.1/

make -j4

make install```其中,-DLLVM_TARGETS_TO_BUILD選項(xiàng)也可以根據(jù)需求設(shè)置,目前LLVM支持的架構(gòu)包含:AArch64AMDGPUARMBPFHexagonLanaiMipsMSP430NVPTXPowerPCSparcSystemZX86XCore

也可以不使用make install,在編譯Halide的時(shí)候使用export:

export LLVM_CONFIG=/build/bin/llvm-configexport CLANG=/build/bin/clang

以上是關(guān)于LLVM的編譯。

## Halide的編譯安裝

下載源碼:git clone https://github.com/halide/Halide.git進(jìn)入Halide目錄,設(shè)置環(huán)境變量:export LLVM_CONFIG=/build/bin/llvm-configexport CLANG=/build/bin/clang編譯方法有很多種,這里采用cmake編譯,方法如下:```mkdir buildcd buildcmake -DLLVM_DIR=/you/path/install/lib/cmake/llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/you/install/path ../make -j4make install

```note:如果編譯失敗,關(guān)注一下cmake命令執(zhí)行的結(jié)果,查看缺少什么包,安裝后重新編譯即可;筆者在編譯的過程中缺少,OpenBLAS,eign3, atlas;其中OpenBLAS采用的源碼安裝,下載源碼:```git clone https://github.com/xianyi/OpenBLAS.gitcd OpenBLASmake -j4make PREFIX=/you/install/path/ install

```如果安裝目錄不是默認(rèn)的/usr/local/,則需要指定環(huán)境變量;其他兩個(gè)庫采用apt-get大法安裝即可;```sudo apt-get install libeigen3-devsudo apt-get install libatlas-dev

```至此完成了Halid的安裝編譯;注意Halide也可以不安裝,只要使用的時(shí)候正確鏈接庫就OK。

## Halide程序構(gòu)建demo如下:```// Halide.h包含了整個(gè)Halide, 只需要include這個(gè)頭文件即可#include "Halide.h"http://c頭文件是為了使用c函數(shù)#include

int main(int argc, char **argv) {

//定義函數(shù)Halide::Func gradient;//定義變量Halide::Var x, y;//定義計(jì)算Halide::Expr e = x + y;

gradient(x, y) = e;//獲取計(jì)算結(jié)果Halide::Buffer output = gradient.realize(800, 600);

//驗(yàn)證計(jì)算結(jié)果for (int j = 0; j < output.height(); j++) {for (int i = 0; i < output.width(); i++) {if (output(i, j) != i + j) {printf("Something went wrong!\n""Pixel %d, %d was supposed to be %d, but instead it's %d\n",i, j, i+j, output(i, j));return -1;}}}printf("Success!\n");return 0;}

```編譯方法:```g++ halide01.cpp -g -I /you/patn/include -L /you/path/bin -lHalide -lpthread -ldl -o halide01 -std=c++11```編譯完該文件以后,獲取可執(zhí)行文件;執(zhí)行該文件之前需要設(shè)置環(huán)境變量:```export LD_LIBRARY_PATH=/you/path/bin```該目錄包含Halide.so至此Halide的demo構(gòu)建結(jié)束;本文中只構(gòu)建了簡(jiǎn)單的Halide的程序,能夠看到Halide語言中算法描述與計(jì)算解耦的設(shè)計(jì)方式;之后的文章中會(huì)繼續(xù)介紹Halide中關(guān)于優(yōu)化策略等的設(shè)計(jì),最終驗(yàn)證Halide自動(dòng)優(yōu)化代碼的性能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266254
  • MIT
    MIT
    +關(guān)注

    關(guān)注

    3

    文章

    253

    瀏覽量

    23312
  • vr
    vr
    +關(guān)注

    關(guān)注

    34

    文章

    9619

    瀏覽量

    149412

原文標(biāo)題:來自MIT的圖像設(shè)計(jì)語言Halide:AI、VR利器

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Freepik攜手Magnific AI推出AI圖像生成器

    近日,設(shè)計(jì)資源巨頭Freepik攜手Magnific AI,共同推出了革命性的AI圖像生成器——Freepik Mystic,這一里程碑式的發(fā)布標(biāo)志著AI
    的頭像 發(fā)表于 08-30 16:23 ?950次閱讀

    圖像識(shí)別技術(shù)包括自然語言處理嗎

    圖像識(shí)別技術(shù)與自然語言處理是人工智能領(lǐng)域的兩個(gè)重要分支,它們?cè)诤芏喾矫嬗兄芮械穆?lián)系,但也存在一些區(qū)別。 一、圖像識(shí)別技術(shù)與自然語言處理的關(guān)系 1.1
    的頭像 發(fā)表于 07-16 10:54 ?394次閱讀

    麻省理工學(xué)院研發(fā)RoboGrocery系統(tǒng),雜貨店自動(dòng)化裝袋新篇章

    在科技日新月異的今天,自動(dòng)化和智能化正逐漸滲透到我們生活的方方面面。近日,麻省理工學(xué)院計(jì)算機(jī)科學(xué)與人工智能實(shí)驗(yàn)室(CSAIL)的一項(xiàng)創(chuàng)新技術(shù)引起了廣泛關(guān)注——RoboGrocery系統(tǒng),該系統(tǒng)將計(jì)算機(jī)視覺與軟機(jī)器人夾持器技術(shù)相結(jié)合,為雜貨店自動(dòng)化裝袋過程帶來了新的可能性。
    的頭像 發(fā)表于 07-01 16:49 ?465次閱讀

    麻省理工科技評(píng)論》洞察與思特沃克發(fā)布最新報(bào)告

    ——明智的決策是企業(yè)數(shù)據(jù)現(xiàn)代化的首要目標(biāo) 北京2024年5月29日 /美通社/ -- 近日,《麻省理工科技評(píng)論》洞察最新報(bào)告探討了企業(yè)數(shù)據(jù)戰(zhàn)略和現(xiàn)代化計(jì)劃與整體業(yè)務(wù)戰(zhàn)略不一致,以及過于狹隘地專注于
    的頭像 發(fā)表于 05-29 17:31 ?228次閱讀

    麻省理工與Adobe新技術(shù)DMD提升圖像生成速度

    2023年3月27日,據(jù)傳,新型文生圖算法雖然使得圖像生成無比逼真,但奈何運(yùn)行速度較慢。近期,美國麻省理工學(xué)院聯(lián)合Adobe推出新型DMD方法,僅略微犧牲圖像質(zhì)量就大幅度提高圖像生成效
    的頭像 發(fā)表于 03-27 14:17 ?393次閱讀

    解鎖AI時(shí)代的利器——訊飛AI鼠標(biāo)AM30助你在AI時(shí)代脫穎

    解鎖AI時(shí)代的利器——訊飛AI鼠標(biāo)AM30助你在AI時(shí)代脫穎而出 隨著AI時(shí)代的到來,人們對(duì)于人工智能的需求越來越迫切。 在這個(gè)競(jìng)爭(zhēng)激烈的時(shí)
    的頭像 發(fā)表于 03-25 13:37 ?419次閱讀
    解鎖<b class='flag-5'>AI</b>時(shí)代的<b class='flag-5'>利器</b>——訊飛<b class='flag-5'>AI</b>鼠標(biāo)AM30助你在<b class='flag-5'>AI</b>時(shí)代脫穎

    霍尼韋爾與南方泵業(yè)開展戰(zhàn)略合作,四川成都一家紅外熱成像專用圖像處理芯片服務(wù)商完成A+輪融資

    傳感新品 【麻省理工學(xué)院:研發(fā)出自供電傳感器,可從環(huán)境中獲取能量】 3 月 4 日消息,來自美國頂尖學(xué)府之一麻省理工學(xué)院的研究人員發(fā)明了一種無需電池、自供電,且不產(chǎn)生污染的傳感器。 研究團(tuán)隊(duì)負(fù)責(zé)人
    的頭像 發(fā)表于 03-14 08:42 ?510次閱讀
    霍尼韋爾與南方泵業(yè)開展戰(zhàn)略合作,四川成都一家紅外熱成像專用<b class='flag-5'>圖像</b>處理芯片服務(wù)商完成A+輪融資

    麻省理工學(xué)院開發(fā)出新的RFID標(biāo)簽防篡改技術(shù)

    雖然RFID標(biāo)簽廣泛應(yīng)用于各種場(chǎng)景,但安全性一直是其難以回避的問題。不法分子可以輕松復(fù)制或剝離這些電子標(biāo)簽,將贗品偽裝成正品,欺騙消費(fèi)者和認(rèn)證系統(tǒng)。然而,麻省理工的新發(fā)明為這一問題提供了有效
    的頭像 發(fā)表于 02-22 11:30 ?472次閱讀
    <b class='flag-5'>麻省理工</b>學(xué)院開發(fā)出新的RFID標(biāo)簽防篡改技術(shù)

    Innovusion駛?cè)氤掷m(xù)增長(zhǎng)快車道,消息稱中國特供版英偉達(dá) H20 AI 芯片推遲到明年一季度發(fā)布

    ? 傳感新品 【麻省理工學(xué)院:測(cè)試了一種新的可攝入傳感器,從胃腸道內(nèi)監(jiān)測(cè)包括心率和呼吸模式在內(nèi)的生命體征】 麻省理工學(xué)院的研究人員開發(fā)了一種可攝取的膠囊,可以從病人的胃腸道內(nèi)監(jiān)測(cè)包括心率和呼吸模式
    的頭像 發(fā)表于 12-12 17:28 ?329次閱讀
    Innovusion駛?cè)氤掷m(xù)增長(zhǎng)快車道,消息稱中國特供版英偉達(dá) H20 <b class='flag-5'>AI</b> 芯片推遲到明年一季度發(fā)布

    用于處理豐富輸入輸出數(shù)據(jù)流的圖形和圖像理工

    電子發(fā)燒友網(wǎng)站提供《用于處理豐富輸入輸出數(shù)據(jù)流的圖形和圖像理工具.pdf》資料免費(fèi)下載
    發(fā)表于 11-15 14:12 ?0次下載
    用于處理豐富輸入輸出數(shù)據(jù)流的圖形和<b class='flag-5'>圖像</b>處<b class='flag-5'>理工</b>具

    基于紫光同創(chuàng)FPGA的圖像采集及AI加速(盤古50K開發(fā)板)

    基于紫光同創(chuàng)FPGA的圖像采集及AI加速(盤古50K開發(fā)板)
    發(fā)表于 11-03 11:02

    剛剛,6位傳感器青年科學(xué)家入選!麻省理工這份權(quán)威名單公布!

    今日(11月2日),2023年度《麻省理工科技評(píng)論》“35歲以下科技創(chuàng)新35人”亞太區(qū)入選者名單正式公布。 ?《麻省理工科技評(píng)論》(MIT Technology Review)于1899年在美國
    的頭像 發(fā)表于 11-03 08:41 ?383次閱讀
    剛剛,6位傳感器青年科學(xué)家入選!<b class='flag-5'>麻省理工</b>這份權(quán)威名單公布!

    MIT公開課程6002講義

    MIT公開課程6002講義麻省理工學(xué)院
    發(fā)表于 10-19 16:58 ?0次下載

    大象轉(zhuǎn)身,TPU-MLIR適配DragGAN模型前向操作

    DragGANDragGAN是由谷歌、麻省理工學(xué)院和馬克斯普朗克研究所創(chuàng)建的一種新的人工智能模型。通過點(diǎn)擊、拖動(dòng)等簡(jiǎn)單的交互操作就能改變拍攝對(duì)象的姿勢(shì)、形狀和表情等。DragGAN改變了傳統(tǒng)的PS
    的頭像 發(fā)表于 10-10 10:17 ?641次閱讀
    大象轉(zhuǎn)身,TPU-MLIR適配DragGAN模型前向操作

    “發(fā)現(xiàn)和合成量子點(diǎn)”斬獲諾獎(jiǎng) 晶能光電積極融入顯示產(chǎn)業(yè)變革

    近日,因“發(fā)現(xiàn)和合成量子點(diǎn)”,來自美國麻省理工學(xué)院的蒙吉·巴文迪、美國哥倫比亞大學(xué)的路易斯·布魯斯和俄羅斯物理學(xué)家阿列克謝·伊基莫夫被授予2023年諾貝爾化學(xué)獎(jiǎng)。
    的頭像 發(fā)表于 10-09 15:41 ?900次閱讀
    “發(fā)現(xiàn)和合成量子點(diǎn)”斬獲諾獎(jiǎng) 晶能光電積極融入顯示產(chǎn)業(yè)變革