运行时系统是异构高性能计算机软件栈重要组成部分,负责管理硬件资源和用户资源,并构建资源抽象模型,同时还具有实时性和异步性两个核心特征。这部分包括优异构加速器的内存管理模块、异构任务调度模块、数据传输模块、执行模型、内存模型、资源分配与回收管理等部分。
我们对运行时系统的功能在部分场景下的功能做了特殊的优化,其中包括如下几条:
- 模块加载优化:主要对module load进行了优化,对设备函数的加载做了延迟处理,减少了不必要的事件损耗,加快了module load的速度,同时也节约了异构加速器显存的使用率。对module较大的算例初始化性能提升较大。
以使用rocblas的应用为例,这类应用的启动时间平均减少了3s~10s。
- 调度机制优化:
a) 在调度机制这部分通过减少创建的线程数量从而减少了主机端资源的占用,减轻了CPU的负担。同时增加了默认底层队列的数量,减小了加速卡响应任务的延迟事件。下图是对几个AI框架做的性能优化对比。

b) 在创建stream时,也做了延迟创建硬件队列的优化,在一些大量创建stream的场景有较多的性能提升,以AI的deeplab-v3模型为例,优化前单步需要86.276秒,优化后单步只需要37.585秒,性能较之前提升了56%。
- 内存传输优化:我们针对小size类型的unpin内存传输做了DCU加速的优化
- 特殊应用场景优化:针对不同的应用类型,我们对特殊的场景做了相应的优化策略,在运行时系统探测到运行的应用是已有对应优化策略的应用时,会自动加载对应的优化策略,提高应用的整体运行性能。
- 在运行时系统调优器的机制方面,我们对资源使用率也做了一定程度的优化,其中与cuda调优器对比情况如下图所示:(纵轴为内存使用量(MB),横轴为时间(秒))

运行时系统研发团队专注于异构加速底层软件栈开发领域多年,积累了大量异构系统的调试调优经验,今后我们将进一步挖掘产品性能,为客户提供更好的计算服务,为相关从业人员提供专业的技术支持。