-
Notifications
You must be signed in to change notification settings - Fork 0
英特尔HPC技术创新论坛(1月20日)
1、全栈产品集
Intel架构是主流通用的高性能计算架构
软硬件产品组合(HPC软件工具集)、强大的生态系统、面向未来计算创新(Xe系列GPU)
智能互联技术(超越传统IO的先进互连技术)
制造工艺创新(创新工艺和封装,提高生产效率)
芯片内嵌的安全(全面安全设计,核心、SOC、主板、平台&软件,独有的全方位的软硬件安全设计)
先进的架构(支持所有工作负载的芯片产品)
业界公认的软件集(简化编程&优化性能,面向多样架构)
革命性的内存/存储,消除存储瓶颈,支持下一代新型工作负载
实际需求:每核心的性能,每核心内存带宽性能,浮点计算性能,AI指令优化
9200系列:采用BGA封装,由2个Die组成
优化HPC+AI workload
第三代可扩展处理器:Ice Lake-SP 10nm+ 2路Whitley平台,Sunny Cove核心,微架构方面,改进的分支预测,更广泛的分配和执行资源,增强单线程执行和预取,更大L2缓存,增加新的SIMD服务器指令集,大幅提升密码计算和压缩/解压缩负载性能
SoC架构增强:Cascade Lake-SP to Ice Lake-SP,继续增强模块化和均衡的性能,提高可扩展性
Ice Lake-SP IO和内存的一致性:3个UPI时钟可以是不同的,4个内存控制器,每个内存控制器提供两个通道,每个CPU可以提供8个内存通道
内存带宽-延迟的提升也是很明显的,性能提升超过内存速度×通道数增加
AVX512主频优化,不是所有AVX512指令需要高功耗
扩展的xPU产品线:
傲腾持久内存
DAOS存储架构,面向未来HPC&AI融合:统一的内存层,提供高带宽,低延迟和高IOPS——>下一代并行文件系统;融合以数据为中心的工作负载,同时支持仿真、大数据和AI
oneAPI:统一跨架构的编程实现,开源、同一开发模式
HPC性能基准测试流程
基准测试存在欺骗性,不准性等问题
核心:提供数据结果信息,仍然是广泛用于学术研究、特征表征分析、以及产品购买评估的起点
什么是基准测试?可衡量的、可判断的事物标准,多维度
基准测试架构:作者来源(标准化组织、开源社区、ISV、公司、个人);结构基础(基于实际应用、人为合成);使用模式(业务处理、支持决策、基础架构、高性能计算、人工智能、应用开发)、可移植性(Linux、windows);分类(性能分析、特征分析、商业决策)
适合的基准,不同的基准测试满足不同的测试需求,基准测试如同工具一样,专门针对不同的特定领域
有效的基准测试应该能够准确表达用户的使用场景
处理不同的性能数据:结果差异的原因:
1、未比较相同的OS
2、未使用相同容量的内存
3、未使用相同的外围设备(存储设备、网络设备等)
4、未使用相同设备驱动
5、测试之前未确认系统配置
6、安装了过多的额外设备、软件等
7、未比较相似价格区间
如何评估基准测试的结果
基于数据中心的基准测试
基准测试的前期准备:
1、作业的周转时间和作业的吞吐量,哪个更重要
2、是否有IO设备的需求
3、IO突发类型还是吞吐量类型
4、内存的需求类型
5、作业响应时间和最大作业吞吐量,哪个更重要
6、网络需求
7、特定的软件配置环境
基准测试流程与生命周期:
在初始阶段,性能预估,可以使用行业基准测试、特定组件测试等
早期测试,产品已经定型,性能预估时所使用的测试(验证是否达到了预期目标),以及可扩展测试用例,多节点集群测试,客户特定应用算例,测试瓶颈验证
性能数据发布、相关文档发布阶段,校验早期测试结果,官方数据发布、平台整合性能测试,迁移指导书
附加测试,白皮书发布,客户特定需求测试,大规模扩展测试等
基准测试如何帮到我们:1、更精准的产品定位;2、更优化的客户支持;3、技术预研
LINPACK调优
HPL基准测试
求解线性方程 Ax = b
A是分布式内存上的N x N正方形矩阵,运行时间与N的三次方成正比,依赖于其它库,Intel MPI,其它MPI的话需要完整的MKL包
HPL标准实现在NetLib上
OMP_NUM_THREADS、MKL_NUM_THREADS、numactl都不能工作,如何设置线程数量以及将线程绑定到CPU核心,通过设置HPL_LAGEPAGE 、HPL_LOG 、HPL_HOST_CORE 、HPL_HOST_NODE 、HPL_SWAPWIDTH
支持异构:基于特定的相对性能,在HPL中每个节点进行负载均衡,即在较弱节点上使用更少的内存,即能力越大,责任越大
MPI节点文件中按照性能从高到低排列节点
在异构节点运行LINPACK:
持久内存在GPU加速应用中的使用分享
特性:可持久化、价格比内存低、高密度、低延迟、高耐久度、按字节寻址,读写粒度是一个cache line(64字节),较高的带宽:读带宽高,写带宽低(256G单条顺序读约8GB/s,顺序写约3GB/s),像内存一样通过interleave得到加倍带宽,最高可以×6
持久内存的使用方式:
1、内存模式(2LM):内存作为持久化内存(PMem)的缓存。例如12条32G DRAM内存条+12条128G持久化内存,得到1.5TB内存空间;软件不用做任何改变,但需要较大的DRAM内存以保证性能
2、AD模式(AppDirect):同样的配置,得到384G内存和两块756G的PMem设备;要使用AD模式,需要软件做出修改,软件库叫PMDK
GPU读写系统内存的方式:
可分页内存(pageable memory):OS通过内存页表动态管理虚拟内存地址和物理内存地址,例如一段内存长时间不用,可以交换到swap上,此时的物理地址会发生变化
锁页内存(pinned memory):一段内存空间被分配物理地址后,物理地址不再改变,显卡通过DMA的方式读写主机内存,需要内存是锁页内存。通常我们会把需要GPU计算的数据放在锁页内存中。
为什么PMem适用于GPU的应用:
1、PMem也是内存,它采用统一内存地址(unified memory address),自然可以被GPU的软件库设为锁页内存,用于和GPU进行数据交换
2、从带宽上看,使用GPU的应用,因为pcie的带宽限制,大多对内存带宽需求较低,PMem的带宽能够满足
3、从延迟上看,相对于pcie的几个微秒的访问延迟,PMem的延迟影响很小
4、利用持久化特性,可以减少IO操作,提高整体性能
5、使用持久化内存代替内存,可获得相近的性能以及更低的使用成本
内存带宽性能分析:Processor Count Moniter工具,https://github.com/opcm/pcm查看PMem的带宽,命令行:pcm-memory.x-pmm
内存使用分析:使用intel parallel studio工具中的vTune,除了分析计算热点外,还可以分析内存分配的情况
性能优化:选择文件系统,XFS的延迟分配功能,使得新创建文件后,memset时会抛出大量的page fault,拖慢初始化性能;在EXT4文件系统上创建新文件时,会一次分配连续的block,初始化时不抛出page fault,甚至memset的过程都可以省略。但是EXT4会额外占用空间。EXT4用额外的空间换取性能
优化NUMA性能:影响应用性能的瓶颈在NUMA性能,因为跨numa节点访问PMem开销很大,为保证跨numa访问时CPU缓存的数据一致性,会有directory update的写操作。PMem是写性能比较弱,会拖慢numa性能
比较推荐的模式,一个实例绑定一个numa节点
这个应用不能使用多实例,又发现访问远端内存/PMem较多,则应在BIOS里设置,把directory模式改为snoopy模式,即Memory——>snoopy mode for AD选项
可以使用emon工具来查看访问远端PMem的开销
另一种解决NUMA瓶颈的方法:用RAID0的办法解决带宽/容量问题,因为实验的应用是单实例,同时使用PMem0和PMem1时,只能轮流使用,可以通过修改二维数组的结构,以类似RAID0的方式,实现带宽和容量加倍。用dmsetup(device mapper)设置两个PMem为一个RAID0的设备,可以解决PMem作为块设备使用的问题,但不能解决作为内存使用的问题
GATK 4.0 基因测序
RELION 开源应用,冷冻电镜