内存计算研究进展-针对机器学习的近数据计算架构

2024-02-21 06:36

本文主要是介绍内存计算研究进展-针对机器学习的近数据计算架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    针对机器学习的近数据计算架构代表性工作有: Georgia Institute of Technology的BSSync (bounded staled sync) 和 Neurocube,Advanced Micro Devices 的 CoML,具体如下。

1 BSSync

    BSSync指出,在并行实现的机器学习应用中,原子操作用来保障无锁状态下算法的收敛,但带来很大的同步开销,且同步产生的通信延迟不与占比大的计算延迟重叠。BSSync发现,在机器学习应用迭代收敛过程中,可以用未更新的中间数据进行计算,从而提出利用基于近数据计算的有边界一致性模型减少原子操作带来的延迟开销。图17是 BSSync系统结构,CPU 核里面增加了原子请求队列、控制寄存器以及区域表来实现边界一致性模型.实验显示,BSSync比机器学习应用在传统冯.诺依曼系统中的异步并行的实现快1.33倍。

2 Neurocube

    Neurocube是一个针对神经网络计算设计的可编程、可扩展,且节能的近数据计算系统架构。图18 是 Neurocube架构,左边是普遍使用的NDC cube结构,右边是逻辑层设计。逻辑层采用了细粒度可编程的设计模型,以灵活支持祌经网络计算.其中,每 个 P E 有 多 个 M AC单元支持神经网络中最常用的乘加操作,同时还有存储权值的寄存器和缓存以及相应的计数器。

    图19 是 Neurocube的执行流程.它首先将神经网络存储到NDC cube的存储单元中,包括每层数据、神经元状态、连接权值.当一个层处理好之后,与中央处理器交互一次,然后执行下一层。Neurocube通过对逻辑层硬件、数据映射方式、片上互联,以及编程方式的精心设计,使得祌经网络计算在NDC cube中能够高效执行。

    实验显示,相比于GPU系统,Neurocube有 4 倍的每瓦计算效率提升,与 ASIC系统相比,灵活性更好、扩展能力更强。

    不同于针对机器学习设计的注重优化乘加(MAC) 操作的近数据计算系统,C oM L lM 提出,虽然包含MAC操作的卷积层等计算占整个机器学习过程的比例大,但这些计算是计算密集型的,数据复用性好,计算/字节比率高(即一个字节从内存中读出来之后用来计算的次数多);事实上,机器学习过程中,约32%的时间用于数据密集型计算,这些计算的计算/字节比率低。图 2 0 展示了神经网络中低计算/字节比率的计算部分。CoM L 将这些低计算/字节比率的计算部分放在近数据计算端,把MAC等操作放在主处理器上做。

     实验显示,C oM L 在机器学习的数据密集型计算上的加速达到了 2 0 倍,总体有14%的性能提升。

参考文献

毛海宇,舒继武,李飞,等. 内存计算研究进展. 中国科学:信息科学,2021, 51: 173-206, doi: 10.1360/SSI-2020-0037 M ao H Y, Shu J W , Li F , et al. D evelopm ent of processing-in-m em ory (in C hinese). Sci Sin Inform , 2021, 51: 173-206, doi: 10.1360/SSI-2020-0037

这篇关于内存计算研究进展-针对机器学习的近数据计算架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/730863

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口