- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
人工智能全流程在异构内存架构上的应用与优化
近年,随着存储技术的飞速发展(比如持久内存、SSD等),内存架构也变得更为复杂。特别是在人工智能方面,英特尔傲腾和第四范式等已经成功地应用在许多行业的人工智能关键业务。本次AI实践日,第四范式资深体系架构科学家杨俊,握有多项美国和中国的相关专利,将分享如何将先进存储架构应用到实际场景中。
展开查看详情
1 .人工智能全流程 在异构内存架构上的 应用与优化 杨俊 第四范式体系架构科学家 香港科技大学计算机博士 第四范式(北京)技术有限公司
2 .目录 • 异构内存架构 • 持久内存编程模型和持久内存产品 • 人工智能全流程基于异构内存的优化 • Q&A
3 .异构内存 = DRAM + 非易失性内存 CPU 缓存 1-10 ns CPU 缓存 1-10 ns ~100 ns DRAM 内存 ~100 ns 异构内存 (DRAM) 非易失性内存 < 1 us (英特尔® 傲腾™ 持久内存) 外存(SSD、硬盘……) 10 us - 10 ms 10 us - 10 ms 外存(SSD、硬盘……) 容量 容量 非易失性内存 技术使得现代内存架构演变成了异构内存架构 - 更丰富的存储层级 – 多级存储 - 除外存以外提供了更为高性能的持久化介质 – 内存数据持久化
4 .异构内存的优势与挑战 多级存储 内存数据持久化 优势 优势 • 大容量、低成本 • 内存数据持久化 应用场景 应用场景 • 内存容量为瓶颈的应用 • 离线后快速恢复 • 高性能数据持久化需求 技术挑战 技术挑战 • 冷热数据多级缓存机制 • 多级持久化架构 • 缓存敏感算法 • 打破传统的持久化编程模型
5 .非易失性内存产品的现状 • 英特尔® 傲腾™ 持久内存,简称持久内存或者 PMem – 单根容量:128GB/256GB/512GB … • 两种工作模式 - 内存模式(Memory Mode) - 把 PMem 当成易失性内存使用,把 DRAM 当作 CPU 和 PMem 之 间的 cache - 应用无感知 - 应用直接读写模式(App Direct Mode, 或者 AD Mode) - 最简单直接的方法,是像使用传统硬盘方式,挂载文件系统,通过 posix文件系统的接口读写持久内存 - 追求极致性能的方法,是使用Persistent Memory Development Kit (PMDK),直接通过 CPU 指令读写持久化内存设备 - 在需要保证持久化数据的数据一致性的应用里(如数据库),需要使用额 外的CPU指令来保证数据被持久化到PMem中的顺序 Read Instruction Write Instruction Memory (64-byte LOAD) (64-byte STORE+CLWB+MFENSE) Type Latency (ns) Latency (ns) Seq. Rnd. Seq. Rnd. DRAM ~80 ~100 ~95 PMem ~160 ~300 ~100
6 .全球网络存储工业协会持久内存编程模型 • The SNIA NVM Programming Model 像使用SSD一样使用 PMem 使用针对PMem优化的文件系 统(如NOVA) 像使用SSD一样使用 PMem 性能最优的使用方法: ©2021 SNIA. All Rights Reserved. 绕开内核态,直接以内存方式 存取(store/load)数据 重点
7 .PMem持久化的工作原理 应用程序负责发出CPU Cache Flush相关指令 保证PMem数据持久化 硬件厂商负责保证CPU Cache往PMem刷写的 数据持久化
8 .人工智能全流程图解 – 反欺诈在线增强决策系统
9 . 人工智能全流程中 PMem 的应用 PMem PMem Memory Mode App Direct Mode 用于训练机器学习模型的 模型训练系统 用于收集反馈数据或日志的 内存资源对模型训练时长影响巨大 消息队列系统 单节点内存容量有限:受单节点DIMM槽数量和DRAM单根容量限制 高成本:DRAM成本和为了提供大内存而需要增加节点数量 常见业务场景产生数据或日志巨大 单节点吞吐有限:受传统持久化设备性能限制 高成本:需要上百节点支撑常见业务场景 用于服务特征工程和特征抽取的 内存式数据库 机器学习数据规律巨大 高成本:单节点内存容量有限 数据恢复缓慢、长尾延迟:受传统持久化设备性能限制
10 .基于 PMem 优化的关键组件 用于服务特征工程和特征抽取的 内存式数据库 – PmemStore (基于 PMem 的存储引擎) https://github.com/4paradigm/pmemstore – FEDB (PMem-optimized Feature Engineering Database) https://github.com/4paradigm/fedb 用于收集和分发数据的 消息队列系统 – Pafka (PMem Accelerated Kafka) https://github.com/4paradigm/pafka
11 . PmemStore: 针对人工智能应用优化的持久化内存存储引擎 内存数据库 + 持久化存储 = 持久化内存存储引擎 ✔ 高性能查询 ✔ 高性能持久化 ✔ 高性能查询 ❌ 高内存占用 ✔ 低内存资源消耗 ✔ 高性能持久化 ❌ 掉线恢复慢 ❌查询效率慢 ✔ 低成本资源消耗 ❌ 不对人工智能应用优化 ❌不对人工智能应用优化 ✔ 针对人工智能应用常见的 基于时间窗口的数据存取特别 优化 27
12 .FEDB - 特征工程内存数据库 实时特征: 痛点: 被广泛应用于在线决策增强系统中, 现有内存数据库无法达到实时特征抽取 能大幅提高模式质量和准确性的一种 的性能要求(<50 ms) 高维特征
13 .FEDB - 特征工程内存数据库 • https://github.com/4paradigm/fedb • FEQL引擎 – FEQL - 专为特征工程和特征抽取设计的一种类SQL语言 – 基于LLVM的优化器 • 存储引擎 – 高可用 – 专为优化“基于时间窗口的实时特征抽取“而设 计的底层数据结构
14 .使用 PmemStore 驱动 FEDB,从异构内存中受益 FEDB 痛点:高内存消耗、长恢复时间、长尾延迟 解决方案:使用 PmemStore 作为 FEDB 的存储引擎,利用 PMem 带来的大内存和持久化优势 VLDB 2021: Optimizing In-memory Database Engine for AI-powered On-line Decision Augmentation Using Persistent Memory 探索使用 PMem 的不同方法 双层持久化跳表
15 .PMem 优化的关键技术 根本原因:CAS和Flush是完全独立 • CAS(比较并交换) 的两个指令,无法提供原子性保证 – Compare-And-Swap – 一种通过硬件实现并发安全的常用技术,底层通过利用 PCAS CPU的CAS指令对缓存加锁或总线加锁的方式来实现多处 Persistent-Compare-And-Swap 理器之间的原子操作 1. 解决正确性问题 • (DRAM并不需要考虑的)PMem数据一致性问题: - Flush-on-Read - 产生新的性能问题 – 多线程并发读写PMem数据时,相关联的多个数据持久化, - 如何判断是否需要flush? 需要按预先设计好的顺序进行,否则会出现数据一致性问 题 2. 解决性能问题 – 强制的用锁来保证数据flush前不能读取会造成性能问题 - 智能指针(Smart Pointer) 1. 修改时使用dirty flag对于未flush的数据标记 2. 读取时若发现dirty flag则先执行flush,再用 传统CAS更新指针(去掉dirty flag)
16 . 基于 PmemStore 的 FEDB 性能优势 数据库重启恢复时间减少99.7% 长尾延迟减少~20% 总拥有成本(TCO)降低~58.4% PmemStore 已经开源,欢迎试用 • https://github.com/4paradigm/pmemstore
17 .消息队列系统:Kafka Pafka Kafka • 广泛的应用场景:消息传输,日志搜集, 流处理…… • 高性能、高可扩展、高可用 • 高成本:上百节点撑起常见业务场景 Pafka (PMem Accelerated Kafka) • 基于 Kafka 架构和 APIs, 业务代码迁移零成本 • 使用持久内存打破 Kafka 性能瓶颈 • 大幅提升单节点吞吐,降低硬件成本达 10 倍
18 .Pafka 架构 - 基于 Kafka 高可扩展性架构 - 通过 PMDK ,将 segment 的存储从 HDD/SSD 赋能为 可在 PMem 上持久化 - 引入 MixChannel 概念,实 现持久内存或者外存的多 级持久化
19 .性能测试结果 单节点吞吐(越大越好) 延迟(越小越好) 相比较于数据中心常用的 SATA SSD,Pafka 在吞吐和延迟上均可以达到将近 20x 的性能改善 Pafka 已经开源,欢迎试用 • https://github.com/4paradigm/pafka
20 . 异构存储技术社区 • 异构存储技术社区: https://memark.io/ x • 开源项目 – PmemStore: https://github.com/4paradigm/pmemstore – Pafka: https://github.com/4paradigm/pafka/ • 异构存储技术论坛 – https://discuss.memark.io/
21 .大赛网址:https://opensource.4paradigm.com/ai2021/