Loading

随笔分类 -  敲代码

摘要:表达式模板是Eigen、GSL和boost.uBLAS等高性能C++矩阵库的核心技术。本文基于MXNet给出的教程文档来阐述MXNet所依赖的高性能矩阵库MShadow背后的原理。 编写高效的机器学习代码 我们先来思考一个问题:如何才能编写出高效的机器学习代码?假设DNN模型按照下面的代码进行权重更 阅读全文
posted @ 2022-02-27 19:54 shuo-ouyang 阅读(193) 评论(0) 推荐(1)
摘要:虚函数的问题 虚函数的主要问题是性能开销比较大,一个虚函数调用可能需要花费数倍于非虚函数调用的时间,尤其是当非虚函数被声明为inline时(注意,虚函数不能被内联)。 CRTP介绍 CRTP的全称是Curiously Recurring Template Pattern,中文可以翻译成奇异递归模板模 阅读全文
posted @ 2022-01-06 22:53 shuo-ouyang 阅读(1069) 评论(0) 推荐(0)
摘要:在超算系统上运行MXNet分布式训练任务时,面临着一个IP地址相关的问题。我们在提交MXNet的分布式任务时,需要知道各个GPU节点的IP地址,把这些IP地址放到一个hosts文件中,以供分布式训练使用。因此,一种常用的方式是先使用salloc或yhalloc申请若干节点,然后依次登录这些节点,查询 阅读全文
posted @ 2021-03-14 18:16 shuo-ouyang 阅读(1532) 评论(0) 推荐(0)
摘要:MShadow是一个基于表达式模板实现的张量库,在MXNet框架中被广泛使用。这篇文章简单介绍了MShadow的基本用法和特性,文章主要翻译自mshadow/guide/README。 张量数据结构 MShadow中的主要数据结构就是张量(Tensor),下面是一个简化版本的声明定义(来自mshad 阅读全文
posted @ 2020-11-01 22:18 shuo-ouyang 阅读(517) 评论(0) 推荐(0)
摘要:本文主要基于MXNet1.6.0版本进行分析。 在上一篇文章中,我们分析了MXNet中KVStore的进程内通信机制。在这篇文章中,我们主要分析KVStore如何进行多节点分布式通信。 在KVStore的实现中,KVStoreDist和KVStoreDistServer分别对应参数服务器中的work 阅读全文
posted @ 2020-09-21 21:49 shuo-ouyang 阅读(519) 评论(0) 推荐(0)
摘要:本文主要基于MXNet1.6.0版本,对Gluon接口的分布式训练过程进行简要分析。 众所周知,KVStore负责MXNet分布式训练过程中参数的同步,那么它究竟是如何应用在训练中的呢?下面我们将从Gluon.Trainer这个接口入手,逐步分析分布式训练的梯度交换以及参数同步过程。下面这段代码摘自 阅读全文
posted @ 2020-09-21 11:19 shuo-ouyang 阅读(558) 评论(0) 推荐(0)
摘要:本文主要基于MXNet1.6.0版本进行分析。 MXNet的KVStore模块下有几个比较重要的类。KVStore是一个抽象类,提供了一些通用的API,例如Init、Push和Pull等。因为KVSotre支持int和string两种类型的key,所以这些API以不同类型的key作为参数,提供了两种 阅读全文
posted @ 2020-08-22 15:12 shuo-ouyang 阅读(723) 评论(0) 推荐(0)
摘要:本文基于tensorflow-v1.15分支,简单分析下TensorFlow中的优化器。 optimizer = tf.train.GradientDescentOptimizer(learning_rate=.05) train_op = optimizer.minimize(loss) 当我们调 阅读全文
posted @ 2020-06-20 12:05 shuo-ouyang 阅读(2008) 评论(0) 推荐(0)