写点什么

Apache MXNet 版本添加了对新的 NVIDIA Volta GPU 和 Sparse Tensor 的支持

  • 2019-11-07
  • 本文字数:1789 字

    阅读完需:约 6 分钟

Apache MXNet 版本添加了对新的 NVIDIA Volta GPU 和 Sparse Tensor 的支持

我们对 Apache MXNet 版本 0.12 的发布感到很兴奋。MXNet 社区的参与者密切合作,为用户带来了新的增强功能。在此版本中,MXNet 添加了两项新的重要功能:


  • 对 NVIDIA Volta GPU 的支持,这使用户能够大大减少神经网络模型的训练和推理时间。

  • 对 Sparse Tensor 的支持,这使用户能够以最有利于存储和计算的方式使用稀疏矩阵训练模型。

对 NVIDIA Volta GPU 架构的支持

MXNet v0.12 版本添加了对 NVIDIA Volta V100 GPU 的支持,这使客户训练卷积神经网络的速度比 Pascal GPU 的速度快 3.5 倍。训练神经网络涉及数万亿次的浮点数 (FP) 乘法与加法运算。这些计算通常已使用单精度 (FP32) 完成以实现较高的准确度。但是,最近的研究表明,用户可以通过使用半精度 (FP16) 数据类型的训练获得与使用 FP32 数据类型的训练相同的准确度。


Volta GPU 架构引入了 Tensor Core。每个 Tensor Core 每个时钟周期可执行 64 次乘法和加法混合运算,约为每个 CUDA 核心在每个时钟周期内执行的 FLOPS 的四倍。每个 Tensor Core 执行如下所示的运算:D = A x B + C,其中 A 和 B 是半精度矩阵,而 C 和 D 可以是半精度或单精度矩阵,从而执行混合精度训练。利用新的混合精度训练,用户可以通过对网络的大多数层使用 FP16 并在必要时使用更高精度的数据类型来获得最佳训练绩效,且不会降低精度。



MXNet 使用户能够轻松使用 FP16 训练模型以利用 Volta Tensor Core。例如,您只需在 MXNet 中通过将以下命令选项传递到 train_imagenet.py 脚本即可启用 FP16 训练。


Bash


--dtype float16
复制代码


最近,我们宣布推出一套新的 AWS Deep Learning AMI,它们预安装了针对 Amazon EC2 P3 实例系列中的 NVIDIA Volta V100 GPU 进行了优化的各种深度学习框架,其中包括 MXNet v0.12。只需在 AWS Marketplace 中单击一下鼠标即可开始;或者,您也可以按照此分步指南操作,开始使用您的第一个笔记本

Sparse Tensor 支持

MXNet v0.12 添加了对 Sparse Tensor 的支持,可高效地存储和计算大部分元素为零的张量。我们都很熟悉 Amazon 基于您过去的购买历史记录给出的推荐,并且熟悉 Netflix 基于您过去的查看历史记录和对其他节目的评分给出的节目推荐。这类适用于数百万人的基于深度学习的推荐引擎涉及大部分元素为零的稀疏矩阵的乘法与加法运算。以与在稠密矩阵之间执行矩阵运算相同的方式在稀疏矩阵之间执行的数万亿次矩阵运算在存储和计算方面的效率不高。在默认的稠密结构中存储和操作这类包含许多零元素的稀疏矩阵会导致浪费内存以及对零元素执行不必要的处理。


为了解决这类难点,MXNet 启用了 Sparse Tensor 支持,使 MXNet 用户能够以最有利于存储和计算的方式执行稀疏矩阵运算并更快地训练深度学习模型。MXNet v0.12 支持两大稀疏数据格式:Compressed Sparse Row (CSR) 和 Row Sparse (RSP)。CSR 格式经过优化,可表示包含大量列的矩阵,其中每个行仅包含几个非零元素。RSP 格式经过优化,可表示包含大量行的矩阵,其中大部分行切片都完全是零元素。例如,CSR 格式可用于为推荐引擎编码输入数据的特征向量,而 RSP 格式可用于在训练期间执行稀疏梯度更新。对于大多数常用的运算符 (例如,矩阵点积和元素级运算符),此版本启用对 CPU 的稀疏支持。未来版本中将添加对更多运算符的稀疏支持。


以下代码段说明如何将 scipy CSR 矩阵转换为 MXNet CSR 格式,并使用其中一个向量对其执行稀疏矩阵向量乘法运算。要了解有关在 MXNet 中使用新稀疏运算符的更多信息,请参阅这些教程


Bash


import scipy.sparse as spspimport mxnet as mx# construct a random scipy CSR matrixscipy_csr = spsp.rand(3, 4, format='csr', density=0.5)# convert scipy CSR matrix to MXNet CSR formatmx_csr = mx.nd.sparse.csr_matrix(scipy)# perform sparse matrix-vector multiplicationresult = mx.nd.sparse.dot(mx_csr, mx.nd.ones((4, 1)))
复制代码

后续步骤

MXNet 的入门很简单。可在发行说明中找到此版本的完整更改列表。如果您有疑问或建议,请给我们留言。


作者介绍:



Sukwon Kim 是 AWS Deep Learning 的高级产品经理。他负责开发让客户能够更轻松地使用深度学习引擎的产品,工作重点是开源 Apache MXNet 引擎。在业余时间,他喜欢徒步旅行和旅游。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/apache-mxnet-release-adds-support-for-new-nvidia-volta-gpus-and-sparse-tensor/


2019-11-07 08:00906

评论

发布
暂无评论
发现更多内容

【Flutter 专题】90 图解 Dart 单线程实现异步处理之 Future (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

Go 学习笔记之 结构体

架构精进之路

Go 语言 7月日更

性能框架哪家强—JMeter、K6、locust、FunTester横向对比

FunTester

性能测试 接口测试 测试框架 测试开发

全面了解Java并发编程基础!超详细!

程序员的时光

Java 并发编程

【LeetCode】基于时间的键值存储Java题解

Albert

算法 LeetCode 7月日更

京东智造云:在世界人工智能大会上,听到的工业智能生长的声音

脑极体

性能测试框架对比初探

FunTester

性能测试 接口测试 测试框架 测试开发

ACM金牌选手整理的【LeetCode刷题顺序】

编程熊

Java 面试 算法 面经 笔试

网络攻防学习笔记 Day70

穿过生命散发芬芳

网络攻防 7月日更

你以为的你以为未必是你以为的

Bruce Talk

敏捷 随笔 Agile 引导和教练

领域驱动设计到底在讲什么?

escray

学习 极客时间 7月日更 如何落地业务建模

只更新代码,然后发布版本:基于 Serverless Devs 原子化操作阿里云函数计算

Serverless Devs

推荐系统的未来发展(三十三)

Databri_AI

价值观 推荐系统

在线脑图思维导图生成工具

入门小站

工具

密码你真的了解吗

卢卡多多

7月日更

Javascript 的工作原理:引擎、运行时和调用堆栈概述

devpoint

JavaScript V8 7月日更

🏆【CI/CD技术专题】「Maven插件Docker系列」使用Maven插件构建Docker镜像的方法

码界西柚

Docker maven 7月日更 Plugin

Kats-Facebook最新开源的时序分析工具

好孩子

PowerShell 正则表达式

耳东@Erdong

PowerShell 7月日更

架构训练营模块 1 作业 - 1班助教

听闻

网络攻防学习笔记 Day71

穿过生命散发芬芳

网络攻防 7月日更

模块八作业

Presley

Hadoop 入门教程

若尘

大数据 hadoop

模块一作业

Always

架构实战营

Apache Flink 漫谈系列 —— 概述

云祁

flink 7月日更

我为什么要学习业务建模?

escray

学习 极客时间 7月日更 如何落地业务建模

Linux之find命令的参数详解

入门小站

Linux

架构实战营 模块八课后作业

iProcess

架构实战营

实时音视频技术全栈攻略|寻找C站宝藏

liuzhen007

音视频 7月日更

公司内部使用的数仓开发规范

白贺BaiHe

数据仓库 开发规范 数仓规范 7月日更

暑假期间快手将重点整治平台:短视频平台如何完善内容审核机制

石头IT视角

Apache MXNet 版本添加了对新的 NVIDIA Volta GPU 和 Sparse Tensor 的支持_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章