计算性能
命令式和符号式混合编程
测试
1 | def add_str(): |
使用HybridSequential类构造模型
1 | from mxnet import nd, sym |
1 | [[-0.1137567 -0.05474834]] |
使用HybridBlock类构造模型
1 | from mxnet import nd, sym |
1 | F: <module 'mxnet.ndarray' from 'D:\\Anaconda3\\lib\\site-packages\\mxnet\\ndarray\\__init__.py'> |
异步计算
MXNet中的异步计算
1 | from mxnet import autograd, gluon, nd |
1 | Workloads are queued. time: 0.0504 sec |
使用同步函数让前端等待计算结果
同步函数 |
---|
wati_to_read |
waitall |
asnumpy |
asscalar |
其他任何NDArray转换成其他不支持异步计算的数据结构的操作 |
1 | from mxnet import autograd, gluon, nd |
1 | time: 0.0020 sec |
使用异步计算提升计算机性能
1 | from mxnet import autograd, gluon, nd |
注意异步优化是针对Linux的,测试发现。
1 | # Windows 10 |
1 | # Linux |
异步计算对内存的影响
1 | from mxnet import autograd, gluon, nd |
1 | # 使用同步函数 |
CPU和GPU的并行计算
1 | from mxnet import autograd, gluon, nd |
1 | Run on CPU. time: 0.8423 sec |
计算和通信的并行计算
1 | from mxnet import autograd, gluon, nd |
1 | Run on GPU. time: 0.5432 sec |
简单计算量小,并行计算
1 | from mxnet import nd |
1 | Generate X.. time: 0.0628 sec |
多GPU并行计算
1 | import mxnet as mx |
1 | # 多CPU测试 |
多GPU简洁实现
1 | import mxnet as mx |
1 | running on: [gpu(0)] |