cuDNN和NCCL

在Training方面比较重要的库是cuDNN。cuDNN是深度学习基础模块加速库,可以支持所有主流的深度学习框架,比如Caffe、Tensorflow、CNTK、Theano、PyTorch等,这些基础模块指的是深度学习框架中常用的一些layer(神经网络层)操作,比如卷积、LSTM、全连接、Pooling(池化层)等。那么cuDNN的优势有什么呢?首先它将layer专门针对GPU进行了性能调优;第二是cuDNN以调用库函数的方式进行神经网络设计,能够大大节省开发者的时间,让大家可以将时间和精力集中在神经网络的设计和实现,而不是去进行GPU代码的开发和性能调优。

在这个benchmark中大家都可以看到,分别使用了八颗不同架构的GPU服务器对GoogLeNet网络进行训练的性能对比,大家可以只看最后两个绿色的柱状图,分别代表的是八颗P100的DGX-1服务器以及八颗Tesla V100的DGX-1V服务器。大家可以看到二者的性能差异大概是在2.5倍左右,也就是我们在Tesla V100上进行Deep Learning 训练时的性能提升水平。

接下来介绍的SDK是NCCL。

深度学习中常常需要多GPU并行训练,而Nvidia的NCCL库NVIDIA/nccl(https://github.com/NVIDIA/nccl)在各大深度学习框架(Caffe/Tensorflow/Torch/Theano)的多卡并行中经常被使用。

NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all-gather, reduce, broadcast)库,Nvidia做了很多优化,以在PCIe、Nvlink、InfiniBand上实现较高的通信速度。比方说all-reduce、all-gather以及broadcast等等,它能够自动检测GPU之间的拓扑连接关系,再结合通信采用最佳的路径实现数据IO。

在最新的NCCL 2.0版本里面,增加了对多服务器节点的支持,在NCCL 1.0版本里面我们只是支持单节点内的多GPU,但目前NCCL 2.0可以支持多节点的,并且可以同时支持PCle和NVLink连接方式。大家从上面的benchmark可以看到,从单节点一颗GPU到单节点八颗GPU,再到两个节点16颗GPU,以及四个节点32颗GPU,使用NCCL实现的Deep Learning 训练的吞吐性能几乎是线性增长的,其实这是非常难达到的一个性能。而目前NCCL 2.0最多可以支持八个服务器节点的并行。

原文发布于微信公众号 - 吉浦迅科技(gpusolution)

原文发表时间:2018-01-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVer

经典卷积神经网络(CNN)结构可视化工具

本文将介绍一种在线网络工具,可用于可视化各种经典的卷积神经网络结构。学习Caffe的同学,一定很熟悉Netscope。它就是用来可视化Caffe的prototx...

19100
来自专栏AI研习社

手把手教你在浏览器中使用脸部识别软件包 face-api.js

我可以很激动地说,我们终于有可能在浏览器中运行人脸识别程序了!在这篇文章中,我会给大家介绍一个基于 TensorFlow.js 核心的 JavaScript 模...

20110
来自专栏量子位

如何用sklearn创建机器学习分类器?这里有一份上手指南

原作:Kasper Fredenslund 林鳞 编译自 Data Science Central 量子位 出品 | 公众号 QbitAI 分类器是数据挖掘中对...

360160
来自专栏ATYUN订阅号

基于计算机视觉和OpenCV:创建一个能够计算道路交通流量的应用

本文将介绍如何在不需要大量的深度学习算法的情况下,基于计算机视觉来计算道路交通流量。本教程只使用Python和OpenCV,在背景差分算法的帮助下,实现非常简单...

31160
来自专栏宏伦工作室

一次不成功的深度学习实践 - 微信跳一跳

22340
来自专栏PPV课数据科学社区

R语言中不能进行深度学习?

摘要: R语言现在能也进行深度学习了,而且和python一样好,快来试一试吧。 众所周知,R语言是统计分析最好用的语言。但在Keras和TensorFlow的帮...

45790
来自专栏数据派THU

教你用Keras和CNN建立模型识别神奇宝贝!(附代码)

在今天博客的最后,你将会了解如何在你自己的数据库中建立、训练并评估一个卷积神经网络。

68310
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何在时间序列预测中使用LSTM网络中的时间步长

Keras中的长短期记忆(LSTM)网络支持时间步长。 这就引出这样一个问题:单变量时间序列的滞后观察是否可以用作LSTM的时间步长,这样做是否能改进预测性能...

47450
来自专栏专知

TensorFlow 1.9 新增 tf.keras 官方入门教程(Keras与TF的深度集成)

【导读】Keras是深度学习框架中最适合工程化的框架之一,具有简单友好的接口。TensorFlow虽然功能强大,但是对于工程师来说,它的使用却十分的繁琐。好消息...

1.3K20
来自专栏量子位

GitHub上大热的Deep Photo终于有TensorFlow版了!

王小新 编译整理 量子位 出品 | 公众号 QbitAI Prisma这个应用,你可能很熟悉。这是一个能将不同的绘画风格,迁移到照片中,形成不同艺术风格的图片。...

41960

扫码关注云+社区

领取腾讯云代金券