0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

来自麻省理工的图像设计语言Halide:AI、VR利器

SSDFans 来源:杨湘祁 作者:电子发烧友 2019-03-07 14:10 次阅读

随着人工智能VR等领域的发展,我们对于高性能图像处理程序的需求越来越大;当前编程工具开发的高性能图像处理程序牺牲了程序的可读性,模块性,可移植性等;其主要原因是,当前程序将算法描述, 数据存储以及计算糅杂一起。同时手工编写高性能图像处理程序开发效率较低,难以快速构建大量高性能图像处理代码。

在这样的背景下,MIT的研究人员专门为图像处理设计了一种程序语言——Halide;Halide语言易于编写和修改,并且能够自动对代码进行优化,使应用程序获得更好的执行效率。Halide设计的核心思想是将算法的内容和算法的执行耦,这样程序员可以根据不同的设备设置不同的优化策略,获得更高质量的代码。

目前halide支持的设备情况为:

CPU架构:X86, ARM, MIPS, Hexagon, PowerPC

操作系统Linux, Windows, Mac OS X, Android, iOS, Qualcomm QuRT

GPU计算API:CUDA, OpenCL, OpenGL, OpenGL Compute Shaders,Apple Metal, Microsoft Direct X 12

当前知名的自动优化框架,除了halide还有寒武纪的TVM,TVM在设计上借鉴了halide将算法内容和执行解耦的思路。本文主要主要内容如下:

- LLVM安装- Halide编译- Halide程序构建

##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:- 创建源码目录```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```以上是目录构建的方法,注意需要自己将下载的源代码包拷贝到对应的目录下;可选包clang-tools-extra-7.0.1.src.tar.xz放到llvm-7.0.1/tools/clang/tools目录下,解压,重命名为extra;- build LLVM笔者在LLVM-7.0.1目录的同一级,创建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选项也可以根据需求设置,目前LLVM支持的架构包含:AArch64AMDGPUARMBPFHexagonLanaiMipsMSP430NVPTXPowerPCSparcSystemZX86XCore

也可以不使用make install,在编译Halide的时候使用export:

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

以上是关于LLVM的编译。

## Halide的编译安装

下载源码:git clone https://github.com/halide/Halide.git进入Halide目录,设置环境变量: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:如果编译失败,关注一下cmake命令执行的结果,查看缺少什么包,安装后重新编译即可;笔者在编译的过程中缺少,OpenBLAS,eign3, atlas;其中OpenBLAS采用的源码安装,下载源码:```git clone https://github.com/xianyi/OpenBLAS.gitcd OpenBLASmake -j4make PREFIX=/you/install/path/ install

```如果安装目录不是默认的/usr/local/,则需要指定环境变量;其他两个库采用apt-get大法安装即可;```sudo apt-get install libeigen3-devsudo apt-get install libatlas-dev

```至此完成了Halid的安装编译;注意Halide也可以不安装,只要使用的时候正确链接库就OK。

## Halide程序构建demo如下:```// Halide.h包含了整个Halide, 只需要include这个头文件即可#include "Halide.h"//c头文件是为了使用c函数#include

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

//定义函数Halide::Func gradient;//定义变量Halide::Var x, y;//定义计算Halide::Expr e = x + y;

gradient(x, y) = e;//获取计算结果Halide::Buffer output = gradient.realize(800, 600);

//验证计算结果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```编译完该文件以后,获取可执行文件;执行该文件之前需要设置环境变量:```export LD_LIBRARY_PATH=/you/path/bin```该目录包含Halide.so至此Halide的demo构建结束;本文中只构建了简单的Halide的程序,能够看到Halide语言中算法描述与计算解耦的设计方式;之后的文章中会继续介绍Halide中关于优化策略等的设计,最终验证Halide自动优化代码的性能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30896

    浏览量

    269110
  • MIT
    MIT
    +关注

    关注

    3

    文章

    253

    浏览量

    23396
  • vr
    vr
    +关注

    关注

    34

    文章

    9639

    浏览量

    150281

原文标题:来自MIT的图像设计语言Halide:AI、VR利器

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI语言模型开发步骤

    开发一个高效、准确的大语言模型是一个复杂且多阶段的过程,涉及数据收集与预处理、模型架构设计、训练与优化、评估与调试等多个环节。接下来,AI部落小编为大家详细阐述AI语言模型的开发步骤
    的头像 发表于 12-19 11:29 94次阅读

    AI图像识别摄像机

    随着科技的迅猛发展,人工智能(AI)在各个领域的应用越来越广泛,其中图像识别威廉希尔官方网站 尤为引人注目。AI图像识别摄像机作为这一威廉希尔官方网站 的重要应用之一,正在逐步改变我们的生活和工作方式。什么是
    的头像 发表于 11-08 10:38 245次阅读
    <b class='flag-5'>AI</b><b class='flag-5'>图像</b>识别摄像机

    麻省理工学院研发全新纳米级3D晶体管,突破性能极限

    11月7日,有报道称,美国麻省理工学院的研究团队利用超薄半导体材料,成功开发出一种前所未有的纳米级3D晶体管。这款晶体管被誉为迄今为止最小的3D晶体管,其性能与功能不仅与现有的硅基晶体管相当,甚至在某些方面还超越了后者。
    的头像 发表于 11-07 13:43 366次阅读

    麻省理工学院推出新型机器人训练模型

    近日,据TechCrunch报道,麻省理工学院的研究团队展示了一种创新的机器人训练模型,该模型突破了传统模仿学习方法的局限,不再依赖标准数据集,而是借鉴了大型语言模型(LLM)如GPT-4等所使用的大规模信息处理方式,为机器人学习新技能开辟了全新的道路。
    的头像 发表于 11-04 14:56 496次阅读

    VILA与其他模型在提供边缘AI 2.0方面的表现

    VILA 是 NVIDIA 研究部门与麻省理工学院共同开发的高性能视觉语言模型系列。最大的模型约有 400 亿参数,最小的模型约有 30 亿参数,并且完全开源(包括模型检查点、训练代码和训练数据)。
    的头像 发表于 10-10 10:06 229次阅读
    VILA与其他模型在提供边缘<b class='flag-5'>AI</b> 2.0方面的表现

    美国老化电网已无法负荷AI计算

    外媒《华盛顿邮报》刊发的美国麻省理工学院学者丹妮拉·鲁斯与前美国能源部分析学者尼科·恩里克斯联合署名文章,表达了对于美国老化电网已无法负荷AI计算的担心。 文章称因为AI的爆发使得人工智能系统耗电量
    的头像 发表于 09-26 11:37 780次阅读

    Freepik携手Magnific AI推出AI图像生成器

    近日,设计资源巨头Freepik携手Magnific AI,共同推出了革命性的AI图像生成器——Freepik Mystic,这一里程碑式的发布标志着AI
    的头像 发表于 08-30 16:23 1141次阅读

    图像识别威廉希尔官方网站 包括自然语言处理吗

    图像识别威廉希尔官方网站 与自然语言处理是人工智能领域的两个重要分支,它们在很多方面有着密切的联系,但也存在一些区别。 一、图像识别威廉希尔官方网站 与自然语言处理的关系 1.1
    的头像 发表于 07-16 10:54 838次阅读

    麻省理工学院研发RoboGrocery系统,杂货店自动化装袋新篇章

    在科技日新月异的今天,自动化和智能化正逐渐渗透到我们生活的方方面面。近日,麻省理工学院计算机科学与人工智能实验室(CSAIL)的一项创新威廉希尔官方网站 引起了广泛关注——RoboGrocery系统,该系统将计算机视觉与软机器人夹持器威廉希尔官方网站 相结合,为杂货店自动化装袋过程带来了新的可能性。
    的头像 发表于 07-01 16:49 604次阅读

    麻省理工科技评论》洞察与思特沃克发布最新报告

    ——明智的决策是企业数据现代化的首要目标 北京2024年5月29日 /美通社/ -- 近日,《麻省理工科技评论》洞察最新报告探讨了企业数据战略和现代化计划与整体业务战略不一致,以及过于狭隘地专注于
    的头像 发表于 05-29 17:31 321次阅读

    麻省理工与Adobe新威廉希尔官方网站 DMD提升图像生成速度

    2023年3月27日,据传,新型文生图算法虽然使得图像生成无比逼真,但奈何运行速度较慢。近期,美国麻省理工学院联合Adobe推出新型DMD方法,仅略微牺牲图像质量就大幅度提高图像生成效
    的头像 发表于 03-27 14:17 523次阅读

    解锁AI时代的利器——讯飞AI鼠标AM30助你在AI时代脱颖

    解锁AI时代的利器——讯飞AI鼠标AM30助你在AI时代脱颖而出 随着AI时代的到来,人们对于人工智能的需求越来越迫切。 在这个竞争激烈的时
    的头像 发表于 03-25 13:37 561次阅读
    解锁<b class='flag-5'>AI</b>时代的<b class='flag-5'>利器</b>——讯飞<b class='flag-5'>AI</b>鼠标AM30助你在<b class='flag-5'>AI</b>时代脱颖

    霍尼韦尔与南方泵业开展战略合作,四川成都一家红外热成像专用图像处理芯片服务商完成A+轮融资

    传感新品 【麻省理工学院:研发出自供电传感器,可从环境中获取能量】 3 月 4 日消息,来自美国顶尖学府之一麻省理工学院的研究人员发明了一种无需电池、自供电,且不产生污染的传感器。 研究团队负责人
    的头像 发表于 03-14 08:42 671次阅读
    霍尼韦尔与南方泵业开展战略合作,四川成都一家红外热成像专用<b class='flag-5'>图像</b>处理芯片服务商完成A+轮融资

    麻省理工学院开发出新的RFID标签防篡改威廉希尔官方网站

    虽然RFID标签广泛应用于各种场景,但安全性一直是其难以回避的问题。不法分子可以轻松复制或剥离这些电子标签,将赝品伪装成正品,欺骗消费者和认证系统。然而,麻省理工的新发明为这一问题提供了有效
    的头像 发表于 02-22 11:30 621次阅读
    <b class='flag-5'>麻省理工</b>学院开发出新的RFID标签防篡改威廉希尔官方网站

    2024 年“十大突破性威廉希尔官方网站 ”榜单

    每年,《麻省理工科技评论》都会对科技领域进行调查,选出他们认为最有可能在未来几年改变我们生活的10项威廉希尔官方网站 。他们会考虑各个领域的进步,从生物威廉希尔官方网站 和人工智能到计算机、机器人和气候威廉希尔官方网站 。2024年年
    的头像 发表于 01-16 08:27 1528次阅读
    2024 年“十大突破性威廉希尔官方网站
”榜单