算法应用与加速器系统架构的碰撞:AI软硬结合的方向怎么走?

2023-11-11

2021年9月18日下午,“算法应用与加速器系统架构的碰撞”讨论会在智源研究院顺利举行。参与封闭研讨的专家有:孙广宇,北京大学高能效计算与应用中心长聘副教授;黄高,清华大学助理教授;陈恺,中国科学院信息工程研究所研究员;施柏鑫,北京大学助理教授、研究员;马恺声,清华大学助理教授。(均为青源会会员)

讨论会同时邀请了算法方面的专家学者以及硬件方面的专家学者参与。来自不同领域的专家学者及高校学生,分别介绍算法应用与加速器系统架构的最新进展和遇到的困难挑战。

介绍完毕之后,会议进行了头脑风暴,重点讨论软件算法与硬件可以联合解决的问题。各方在软件与硬件的思维碰撞中产生了很多新想法。

01

与会专家方向介绍

中国科学院信息工程研究所的陈恺老师报告了人工智能安全攻防对抗的相关进展。陈恺介绍了人工智能赋能传统安全(AI for Security)与人工智能技术本身的安全(Security for AI)两个研究方向的工作及未来可以研究的方向。

人工智能赋能传统安全,让计算机变得更加智能,像安全分析人员/黑客一样。例如,陈恺介绍可以利用人工智能的自然语言处理对比文档与代码实现间的不一致性,发现安全漏洞;还可以对APP程序中的隐私设置安全性问题进行智能化分析,辅助找到泄露用户隐私的程序隐蔽行为。

人工智能技术本身的安全也是一大研究热点,近年来有越来越多的文章研究包括对抗样本攻击、语音控制系统安全、神经网络后门、模型窃取攻击等问题。在攻击和对抗攻击方面都有诸多工作。

清华大学的黄高老师报告了高效神经网络架构的设计。黄高重点介绍动态自适应神经网络:针对不同的输入的,动态自适应网络会在包括样本维度自适应、空间维度自适应和时间维度的自适应等多个维度动态变化。

传统的高效神经网络架构设计包括MobileNet、ShuffleNet、CondenseNet等很多工作,但他们都是静态网络。针对不同输入,可以对网络进行变化,进一步提升网络效能。样本维度自适应网络动态判断输入样本的难度,简单样本可以使用较小计算量即可达到很好的效果。空间维度自适应网络根据输入图片不同区域的内容不同,在不同位置对网络进行变化。时间维度的自适应针对视频等序列结构,在不同时间选用对网络进行变化。

北京大学的施柏鑫老师报告了非传统视觉感知与智能视觉计算。施柏鑫重点介绍了把包括新型摄像系统等非传统视觉感知与使用机器学习的智能视觉计算的结合成为相机智能的相关工作。

0c7027524f6209e859169b9b97f2b7ed.png

相比传统摄像头,非传统视觉感知可以捕捉传统相机无法捕捉的内容。例如,余数相机理论上拥有无上限的动态范围;多偏振角度图像可以获得有高精度偏振信息;脉冲融合图像的采集输入能实现高动态、高分辨、真彩色的高质量摄像。

使用机器学习的智能视觉计算对这些信息进行处理,可以实现多种传统视觉无法实现的应用。例如,余数图像动态延展算法可用于高性能成像;从偏振恢复形状的算法可以实现高性能高精度三维重建;脉冲融合图像的重构算法大幅提升相机帧率。

北京大学的孙广宇老师报告了神经网络加速器架构设计的最近进展。孙广宇重点介绍了硬件加速器架构设计方法、加速器架构设计自动化、新型存储器件在神经网络加速器中的应用等相关工作。

神经网络加速器架构是一种专门针对神经网络应用的非通用的架构,它根据特定算法进行特别硬件设计,执行特定算法速度快、能耗低。加速器架构设计自动化可以自动根据给定算法设计硬件架构,自动调整包括片上存储、计算单元规划、片上通信网络的数量与参数设定,让特定算法在其上运行效率最高。

存算一体(PIM)神经网络加速器架构设计是近期的一大热点。将计算单元放在存储单元中,可以大幅度减少从存储单元到计算单元的数据搬运开销,从而加快计算速度、减少能耗。

清华大学的马恺声老师分享了AI+X的概念,通过将AI与各类技术融合开辟新的研究方向。马恺声在神经网络加速器与加速器配套的算法等多个方面的研究工作进行介绍。

03c53655579d146ddcad8dd156226cf1.png

Chiplet的概念是将多个芯片在一个封装里集成起来。马恺声介绍的可扩展的chiplet方案,用先进封装封起来可以实现神经网络加速器芯片的敏捷开发,大幅度减少了可重用模块的设计制造开销。

c59e0c3915d4db41bbdc3b78a790cb13.png

在AI应用方面,马恺声开发的无人小车跟随技术给大家留下了深刻印象。

19b412c5159825e5b58634cafe48c5c5.png

b47c916172370f3379e285f3eb9aba06.png

在网络压缩算法方面,马恺声还介绍了包括神经网络剪枝、神经网络蒸馏的可解释性、神经网络的鲁棒性分析等众多工作。例如,神经网络的模式化剪枝方案PCNN可以大幅减少神经网络的参数量与计算量,同时也减少硬件非规则化访存与计算的开销。

02

软硬件的碰撞,未来研究新思路

在专家的介绍下,与会专家产生了很多软硬件结合设计的想法。在头脑风暴部分,各位老师充分讨论交流,软硬件思维热烈碰撞。

例如,部分视觉算法上用神经网络替代可能效果不好。因为传统方法能写出物理公式,神经网络依赖于数据,进而依赖于场景。针对这些算法专门设计特定硬件架构,或者在神经网络加速器的基础上加上一块针对这些算法的模块来提升硬件性能是一个好的点。

与会老师和同学从具体的例子出发进行讨论。其中一个例子是基于FPGA的CNN的图像处理流程。在实际应用中,在CNN计算之前需要对压缩的图像进行处理,然而随着CNN算法和加速器架构的不断改进,图像解压缩的时间反而容易成为瓶颈。

为了解决这个问题,一些专家提出,可以将部分图像解码操作如IDCT操作融合到CNN当中,然后用硬件逻辑实现其余的轻量级解码操作。这样可以充分利用CNN加速器的计算资源。

从上述例子出发,老师们讨论了自动驾驶场景中多源图像数据的传输与拼接问题,图像数据的压缩能够显著降低自动驾驶系统中的带宽需求,但是也给硬件加速器的设计带来新的挑战。有专家指出,目前图像编解码算法针对的是人的视觉感官系统进行的优化,然而对于CNN网络来说,其针对特定任务的关注点和人是不太一样,是否可以提出一套针对神经网络专用的图片压缩算法,在保证精度的前提下尽可能减少图片数据量,是一个值得研究的问题。

针对视频处理的算法/硬件协同加速。视频存在着大量的时间冗余性,如何在计算过程中尽量去除这种冗余性从而加速处理,也是一个值得讨论的话题。讨论时周哲同学介绍了两个相关工作:EVA2和VR-DNN。前者针对目标追踪任务,只在关键帧运行完整的CNN检测网络,并且保存中间的特征图。对于非关键帧,通过轻量级的位移估计算法计算当前帧相对于关键帧的位移向量,并且用位移向量对保存的中介特征图进行变换。最后用部分CNN网络来处理变换后的特征图,从而减少非关键帧的计算量。

后者提出了一种新的视频处理思路:直接从编码好的视频中解码出位移向量,从而省去了估计位移向量的开销。老师和同学们认为针对视频的时间冗余性进行算法/硬件协同加速是一个值得研究的方向,但是需要找到适合特殊架构加速的“痛点”。

利用动态执行的思想减少CNN计算也是讨论的一大热点。出发点是图片分类等算法中关注的是图片的主体部分,而不重要的背景部分的计算可以被节省。DRQ等工作从提出利用高低精度分别计算主体和背景部分,从而获得一定的加速比。类似的思路主要是减少数据的空间冗余性;针对动态自适应网络的高效运行,不同维度上的动态网络对加速器的性能和灵活性都提出了不同的要求。

以动态结构的神经网络为例,提前退出/层跳过/通道跳过/分支跳过等技术需要加速器提供不同的硬件支持,从而发挥动态网络的性能优势。在多个网络层被映射到同一个加速器的场景下,动态网络也为加速器的任务映射和调度提供了更大的探索空间。

从实际应用的需求出发,在芯片规模不断扩大的趋势下,大型任务乃至多任务的编译与映射逐渐成为进一步发挥硬件性能的主要关注点,硬件架构中的互联设计和硬件运行过程中的数据传输开销越来越不可忽视。

针对这一优化问题,与会专家也从传统方法和机器学习的多个角度进行了讨论。此外会议还讨论了针对图数据库任务的专用硬件设计,面向加速器安全性和可靠性的软硬件协同设计等话题。

欢迎点击阅读原文参与文章讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法应用与加速器系统架构的碰撞:AI软硬结合的方向怎么走? 的相关文章

  • 是否可以模拟 Python 3.6 中的内置 len() 函数?

    是否可以模拟内置len Python 3 6 中的函数 我有一个类定义了一个简单的方法 该方法依赖于len 函数如下 class MyLenFunc object def is longer than three characters se
  • Pandas apply 与 np.vectorize 从现有列创建新列的性能

    我正在使用 Pandas 数据框 并希望创建一个新列作为现有列的函数 我还没有看到关于之间速度差异的很好的讨论df apply and np vectorize 所以我想我会在这里问 熊猫apply 功能很慢 根据我的测量 在一些实验中如下
  • python导入模块时如何避免一直写模块名?

    我用math最近模块很多 我不想写math sqrt x and math sin x 每时每刻 我想缩短它并写sqrt x and sin x How 对于较长的模块名称 通常会缩短它们 例如 import numpy as np 然后您
  • Spark MLlib - 训练隐式警告

    我在使用时不断看到这些警告trainImplicit WARN TaskSetManager Stage 246 contains a task of very large size 208 KB The maximum recommend
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • 为什么在 Windows 中使用 GetConsoleScreenBufferInfoEx 时控制台窗口会缩小?

    我正在尝试使用 GetConsoleScreenBufferInfoEx 和 SetConsoleScreenBufferInfoEx 设置 Windows 命令行控制台的背景和前景色 我正在 Python 中使用 wintypes 进行此
  • Python sqlite3游标没有属性commit

    当我运行这段代码时 path Scripts wallpapers single png conn sqlite3 connect Users Heaven Library Application Support Dock desktopp
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • 字典中的列表,Python 中的循环

    我有以下代码 TYPES hotmail type hotmail lookup mixed dkim no signatures S Return Path email protected cdn cgi l email protecti
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • Python正则表达式从字符串中获取浮点数

    我正在使用正则表达式来解析字符串中的浮点数 re findall a zA Z d d t 是我使用的代码 这段代码有问题 如果数字和任何字符之间没有空格 则不会解析该数字 例如 0 1 2 3 4 5 6 7 8 9 的预期输出为 0 1
  • 求解不等式系统时“多项式错误:仅允许使用单变量多项式”

    我想找到以下两个常数的区间cons1 and cons2我写了下面的代码 from sympy import Poly from sympy import Abs from sympy solvers inequalities import
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • 大型数据集上的 Sklearn-GMM

    我有一个很大的数据集 我无法将整个数据放入内存中 我想在这个数据集上拟合 GMM 我可以用吗GMM fit sklearn mixture GMM 重复小批量数据 没有理由重复贴合 只需随机采样您认为机器可以在合理时间内计算的尽可能多的数据
  • 为什么 bot.get_channel() 会产生 NoneType?

    我正在制作一个 Discord 机器人来处理公告命令 当使用该命令时 我希望机器人在特定通道中发送一条消息 并向用户发送一条消息以表明该命令已发送 但是 我无法将消息发送到频道 我尝试了这段代码 import discord import
  • SQLAlchemy:避免声明式样式类定义中的重复

    我正在使用 SQLAlchemy 并且我的对象模型中的许多类具有相同的两个属性 id 和 整数和主键 以及名称 字符串 我试图避免在每个类中声明它们 如下所示 class C1 declarative base id Column Inte
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa

随机推荐

  • 字符串解析

    知识点 1 split 方法用于把一个字符串分割成字符串数组 2 JSON stringify serilizeUrl sUrl 利用原生JSON对象 将对象转为字符串
  • 遇到DDos攻击勒索保护费,这该怎么办?

    经常会有遇到一些客户过来咨询自己遭到了网络攻击 对方勒索钱财 要是不给就会一直持续攻击下去 许多客户遇到这种情况 找到了德迅云安全询问这种情况有什么办法处理 首先遇到这种事情 这个是不能妥协的 不能助长违法行为 根据以往的经验 只要妥协一次
  • Linux下设置白名单sudo

    Linux下设置白名单sudo 普通账户权限不够 频繁切换root账户比较麻烦 我们可以把自己的普通账户添加到sudoers file中 这样我们可以使用sudo命令在普通用户下提升我们的权限 在root账户下 输入 vim etc sud
  • (论文加源码)基于deap的四分类脑电情绪识别(一维CNN+LSTM和一维CNN+GRU

    论文和源码见个人主页 https download csdn net download qq 45874683 85002721 论文加源码 基于DEAP数据集的1D CNN和RNN情感分类 GRU和LSTM 摘要 在这里 我们研究了脑电情
  • 远程桌面的端口号是多少?

    远程桌面 Remote Desktop 是一种用于远程访问和控制计算机的技术 它允许用户通过网络连接到远程计算机并以图形化界面进行操作 远程桌面使用的端口号通常是3389 在Windows操作系统中 远程桌面协议 Remote Deskto
  • 云服务器内存使用率多少合适,什么时候应当考虑升级主机内存

    根据mysql官方说法 服务器内存占用比例达80 时 属于高负载运行状态了 内存占用比例长时间超过80 时 属于很不稳定状态 长时间超过90 就进入风险区了 这时容易产生数据丢失 数据库崩塌等不安全现象 当然 内存使用率过低又有点资源浪费
  • Wolfram Mathematica 12.3免费安装教程

    注意 本文介绍的Wolfram Mathematica仅为学习用途 如果有条件请支持正版 本文参考自贴吧激活教程 有Github账号的可以点赞支持原作者 https github com TieBaMma InstallTutorial b
  • LVGL V8应用——通过按键切换页面

    一 按键切换对象 程序 全局变量 static lv obj t contanier1 NULL static lv obj t contanier2 NULL 按钮对应回调函数 实现容器的切换 static void win btn ev
  • mybatis-spring-boot-starter依赖对应关系表

    mybatis spring boot starter版本 spring boot starter版本 mybatis版本 mybatis spring版本 2 1 2 2 2 5 RELEASE 3 5 4 2 0 4 2 1 1 2 1
  • HP服务器换硬盘流程,HP服务器SSD硬盘更换操作指南.pptx

    HP服务器SSD硬盘更换操作指南 HP服务器SSD硬盘更换 操作指南 目录 硬盘的安装 准备工作 注意事项 磁盘阵列的创建 创建Raid的流程 注意事项 数据库的创建附加 准备工作 三星磁盘 磁盘托盘 螺丝 这里磁盘托盘 从盒子里拿出来就是
  • YARN异常YarnException:Failed while publishing entity的解决方案

    版本 HDP3 0 mapreduce提交任务计算时 job已经结束 但是容器仍不能关闭持续等待五分钟 INFO Thread 100 org apache hadoop yarn event AsyncDispatcher Waiting
  • 自定义类加载器

    package com bzu csh import java io ByteArrayOutputStream import java io File import java io FileInputStream import java
  • docker容器数据卷

    1 宿主与容器之间映射添加容器卷 privileged true 数据卷的特权 docker run it privileged true v 宿主机绝对路径目录 容器内目录 镜像名 docker run it privileged tru
  • 在手机上通过ssh连接树莓派

    第一步 在手机上下载ConnectBot 豌豆荚上有的下 第二步 Ubuntu 上开启ssh服务 第一次按使用的话需要搭建环境 命令是 sudo apt get install openssh server 第三步 启动SSH服务 sudo
  • Yolov5训练自己的数据集

    本文介绍了如果通过Yolov5框架训练自己的数据集 主要内容包括数据集格式 数据集拆分方法 描述文件修改以及训练和测试方法 还没有搭建Yolov5环境的可以参考我上一篇博文 Yolov5目标检测环境搭建过程 Cuda Pytorch Yol
  • qsort库函数详解

    目录 一 qsort是什么 二 qsort的功能 三 qosrt函数详解 1 qsort函数的定义 2 qsort函数的传参 四 qsort的模拟实现 冒泡 1 如何实现交换 2 如何实现字节之间的交换 一 qsort是什么 qsort是C
  • C#.发布订阅模式

    发布订阅模式 委托可以通过简单的加减实现封装多个方法 但容易出现封装了多个方法的委托被赋值号一下子都给替换掉的问题 即外部对象会影响其他对象对发布者的订阅 委托类可以定义在发布者类之中吗 可以的 实现发布订阅模式的土方法 声明委托类 在发布
  • 关于生命的意义突然有感

    1 一个囚犯被判无期徒刑 放逐到一个海岛上 但不久附近发生海难 监狱不得不组织人手就近救援 这位囚犯十分神勇 一个救10个 于是由于被判表现良好放了 当一个人被判无期徒刑 世界上的乐趣几乎与他无关 他是最容易抑郁的人之一 但很明显 他一旦提
  • tongweb部署vue前端页面的方法

    tongweb部署vue前端页面的方法 1 在同一端口号下部署 2 在不同端口号部署 1 在同一端口号下部署 把vue项目install 运行 build完了的dist包压缩打包 上传到服务器解压 然后在解压完了的目录里新建一个空的WEB
  • 算法应用与加速器系统架构的碰撞:AI软硬结合的方向怎么走?

    2021年9月18日下午 算法应用与加速器系统架构的碰撞 讨论会在智源研究院顺利举行 参与封闭研讨的专家有 孙广宇 北京大学高能效计算与应用中心长聘副教授 黄高 清华大学助理教授 陈恺 中国科学院信息工程研究所研究员 施柏鑫 北京大学助理教