机器学习系统
mlxaaa
这个作者很懒,什么都没留下…
展开
-
TVM引发的思考
引言TVM不仅仅是一个编译器,也可以看做一个编程模型。他的计算与调度分离的哲学使得用户无需关心后端代码的执行优化。TVM 如何对算子进行优化?TVM针对CPU、GPU、ASIC(FPGA)三个硬件后端做了统一的端到端的后端优化,现在我们剥离图优化层,单拎出来对不同后端的算子优化做出解释。不同的硬件特性导致对统一个算子的优化也会有不同的影响,FlexTensor文章列出了针对不同后端的优化技术。TVM对不同的优化技术提出了多种调度原语,包括:...原创 2021-05-13 09:55:08 · 181 阅读 · 0 评论 -
2020-05-15-用于深度学习训练的分布式多租户GPU集群分析
Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads作者提出分布式机器学习系统中出现的三个问题:作业调度GPU利用率训练中会产生的错误作业调度由于分布式机器学习中要求资源限制而使用gang调度算法,因此会产生资源碎片导致利用率不高。由于需要同步参数因此分布式作业locality非常重要,但也由于locality的调度限制也产生了排队延时。作者研究表明,通过放宽locality的限制可以减少原创 2020-07-01 14:29:02 · 828 阅读 · 0 评论 -
Horovod源码剖析(一)
Horovod源码剖析:核心模块 – operationshorovod/common/operations.h首先了解一下mpi常见的通信操作MPI-Scatter:scatter与broadcast类似都是一对多的通信,将一段array 的不同部分发送给所有的进程MPI-Boardcast:与scatter进行区分,broadcast是将0号进程将相同的信息发送给所有的进程;MPI-Gather:MPI_Gather和scatter刚好相反,他的作用是从所有的进程中将每个进程原创 2020-07-01 14:23:21 · 993 阅读 · 0 评论