NVIDIA GTC 2019在苏州金湖国际会议中心举行,由于同事有其他会议冲突,所以我代替他来参加了此次会议。作为刚接触GPU和机器学习不久的新人来说,感觉进入了一个新世界,深刻体验到技术的革新迭代之快,英伟达通过对GPU的全栈优化,实现摩尔定理的加速。

2019年12月16日~2019年12月17日
头两天主要是培训课,这个课程还比较贵,大概扫描了下,基本都在人民币1000元以上,培训有相当部分的学生。由于之前同事没有预定,但不能来了啥也不做吧,找路上认识的腾讯哥们儿用他的工牌进入了教室(迫不得已)。修了《深度学习基础—自然语言处理》和《深度学习基础—多数据类型》两门课程,本来想学习下《深度学习基础—用多GPU训练神经网络》这门课程的(想到可能跟我们现在的业务有些关系),但是没有认识的人,没进去了。顺利完成两门课程学习,拿到NVIDIA发的证书,其中《自然语言处理》有道小编程题,难到了部分同学。通过两门课程学习,有个科普和扫盲的效果。

2019年12月18日
今天的重头戏是NVIDIA的首席执行官黄仁勋的主题演讲,后面官网应该有现场视频。今年参会的人很多,放两张图大家感受下。

据说2017年因为Volta GPU的发布,Keynote给人带来的震撼感比较强烈,想比较而言,今年没有推出新的GPU硬件平台,只发布了一款由软件定义的下一代SoC Orin(这个在后面会详细介绍)。当然,这也比较合理,因为从NVIDIA的角度,就算有存量硬件技术,也需要控制一下推出的节奏。因为在已发布的技术还未被市场充分使用的情况下,再引入新的突破性的技术点,从商业角度来看并不划算。要知道,V100的混合精度加速技术,也是在今年开始较大规模的被行业接受。

老黄的主题演讲内容包括:

RTX的新进展

去年,英伟达发布了RTX新一代GPU架构——Turing(图灵),以及一系列基于图灵架构的RTX GPU。黄仁勋表示图灵架构为英伟达十多年来在计算机图形领域最重要的创新,将光线追踪技术引入英伟达的GPU中。他今天宣布了6款支持RTX的游戏;除此之外,英伟达还创造出了Max-Q设计,它将超高的GPU能效和总体系统优化集于一身,可以用于轻薄的高性能笔记本电脑;同时,随着云计算的普及,英伟达和腾讯合作推出了START云端游戏服务。

深度推荐系统

百度AIBox推荐系统采用英伟达AI,这个系统基于英伟达Telsa v100 GPU,利用这些TB级的数据集去创建一个模型、在GPU上训练这些数据,然后把它放到GPU的内存当中去训练这种TB级别的数据,GPU训练成本只有CPU的十分之一,并且支持更大规模的模型训练;阿里巴巴搭建的推荐系统采用了英伟达的T4 GPU,推荐系统的吞吐量得到了大幅提升。面对每秒几十亿次的推荐请求,CPU速度只有3 QPS,英伟达GPU则提升到了780 QPS,提升百倍。推荐系统的两大难题:一是推荐模型及其复杂,需要处理的参数非常多,这就意味着需要非常强的计算能力。另外一个难题是推荐系统需要进行实时计算并给出反馈。使用擅长并行计算的GPU构建推荐系统比使用CPU构建推荐系统成本大幅降低或性能实现了百倍提升。

软硬件结合

英伟达今年6月也宣布CUDA年底前支持Arm生态系统,让基于Arm的芯片可以更多地应用于超算系统中进行更多地深度学习计算。今天演讲中提到了NVIDIA HPC for ARM首个参考架构,通过cuda加速ARM,把ARM服务器打造成HPC和AI的理想选择。据介绍,GPU+Arm的硬件,加上CUDA以及TensorFlow的优化,Arm进行深度学习的性能是x86处理器性能的96%;通过每个CPU连接4个Volta GPU,搭配4个Mellanox CX5网卡,新一代CX6获得了难以置信的强劲性能;还介绍了在DGX-2上运行Magnum IO GPU Direct Storage技术,可实时对超大数据进行可视化处理。

软件方面,去年英伟达发布了TensorRT5,计算图优化编译器,通过优化PyTorch和TensorFlow等框架中训练出来的AI模型,减少计算和内存访问,让模型在GPU上运行的效率大幅提升。今年推出了TensorRT7,它支持各种类型的RNN、Transformer和CNN。相比TRT5只支持30中变换,TRT 7能支持1000多种不同的计算变换和优化。

“核弹”产品——下一代的汽车和机器人技术Orin

老黄在演讲当中提到,该芯片由170亿个晶体管组成,凝聚着英伟达团队为期四年的努力。Orin系统级芯片集成了英伟达新一代GPU架构和Arm Hercules CPU内核以及全新深度学习和计算机视觉加速器,每秒可运行200万亿次计算(200TOPS),几乎是英伟达上一代Xavier系统级芯片性能的7倍。Orin可处理在自动驾驶汽车和机器人中同时运行的大量应用和深度神经网络,达到了ISO 26262 ASIL-D等系统安全标准。
作为一个软件定义平台,DRIVE AGX Orin能够赋力从L2级到L5级完全自动驾驶汽车开发的兼容架构平台,助力OEM开发大型复杂的软件产品系列。由于Orin和Xavier均可通过开放的CUDA、TensorRT API及各类库进行编程,因此开发者能够在一次性投资后使用跨多代的产品。

老黄的演讲完之后,逛了下几个展台,参加展会的厂商比较多,服务器硬件头部玩家浪潮、新华三以及互联网BAT、滴滴、字节跳动都有参加。展台的内容也比较丰富,从服务器硬件到深度学习软件平台,从AI机器人到智能驾驶,从ARM芯片到VR都有涉及,我们阿里巴巴公司的展台就紧挨着NVIDIA,主题内容是阿里云GPU云服务让AI更高效更简单。浏览完展台后,根据自己从事工作技术的特点,选择了几个跟我们组目前工作联系比较紧密的session,想看看业界对于多机多卡的的大规模计算平台是怎么发挥GPU的算力。带着这个思考,去关注了相应的session,而一些跟我眼前工作不直接相关的session,比如运营商5G通信网络AI研发与实践、中国移动人工智能规划及发展则是期望对AI的一些应用场景建立一些更直观的体感或者从宏观层面了解其发展。

  • 大规模算力平台构建和多机多卡线性扩展
  • 百度凤巢基于HGX-2的CTR模型训练方案
  • GPU全链路优化方案助力金融视觉平台
  • 运营商5G通信网络AI研发与实践
  • 中国移动人工智能规划及发展
  • NVIDIA vGPU在Linux KVM中的新优化和提升
  • NVIDIA GPU和Mellanox网络计算技术挑战AI性能新极限

大规模算力平台构建和多机多卡线性扩展是腾讯高性能计算服务星辰-机智团队带来的分享。分享主要包括大规模算力平台构建、多机多卡线性扩展、业务落地与运营三个部分。平台构建方面基于K8S提供不同训练框架、不同cuda版本的基础镜像,镜像仓库支持用户自定义,用演讲人的话说容器开箱即用;物理架构方面结点内不同CPU走QPI连接,同时CPU通过PCIe Switch和GPU通信,同一个PCIe Switch下的GPU通过GPU Direct RDMA连接。结点间通过100Gbps RDMA通信。在多机多卡部分,主要介绍了一个单机IO“无锁”队列技术、分层RingAllReduce算法(这个之前在知乎文章中有介绍,恰好这次分享的作者就是这篇文章的作者)以及AutoML超参搜索。他们的目标是打造腾讯AI基础设施。
总体感觉:腾讯这个组做的事情有点类似于。在GPU集合通信方面他们应该采用的还是NCCL,不管是硬件架构还是算法支持,都是落户于我们平台的。但在资源集中管理、统一调度以及任务化方面可能做的比我们要好。问了两个问题:1、针对云上多租户场景,怎么做资源调度和分配?2、介绍的分层RingAllduce怎么针对带宽做数据传输限制的?回答1、目前还没接入腾讯云,下一步正在考虑接入。回答2、现在内部节点GPU挂载PCIe Switch下面,通信都是走的PCIe,所以没有高带宽和低带宽的差异,所以对数据传输没有啥限制。

百度凤巢基于HGX-2的CTR模型训练方案是来自百度凤巢和基础架构部的分享。分享主要包括百度新一代CTR训练方案AIBox整体架构、百度AI计算平台孔明和AI计算机X-MAN、AIBox软硬协同解决存储、计算、通信挑战;百度AI计算机X-MAN是集计算、存储、网络关键技术融合一起的一体机(一体机貌似是个趋势:阿里内部的POLARDB Box数据库一体机、华为FusionCube一体机……)。向上对接大规模分布式训练平台孔明,再往上就是深度学习训练系统AIBox,这一套提供底层的基础平台承接广告、推荐等高价值的业务应用。X-MAN到目前为止经历了1.0到4.0的迭代,从最初的单机16卡,支持64卡扩展到引进液冷高效散热;再到模块化:NVLink高速互联背板、100G RDMA节点间互联网络、独立的Mezz和PCIe卡系统。以及目前行业首个4路CPU的超级AI计算机。再搭配飞浆PaddlePaddle,借力生态优势,加速算法迭代。据现场介绍,单个X-MAN GPU节点可以替换100个CPU节点,而AIBox 19年6月在CTR模型上全流量上线,搜索广告、图片凤巢、商品广告等主要模型全面切换AIBox。
个人感觉:百度这几年在AI方面的积累确实领先其他公司,不管是无人驾驶还是AI计算平台。而由于要赶其他会场,就没有提问。

GPU全链路优化方案助力金融视觉平台是蚂蚁金服认知计算和知识图谱团队的分享,因为之前看介绍有GPU训练和预测优化方案和成果,包括基于nccl2和gpu direct rdma的hierarchical allreduce的多机多卡训练,可以在NVIDIA Tesla V100的8卡集群接近线性加速比。想跟这个团队推荐下我们的***,会后沟通才了解到之前有我们的PM跟他们接触过。回去后他去了解下之前遇到了什么问题,然后看看是不是可以更进一步的合作。

运营商5G通信网络AI研发与实践,为参会者阐述运营商人工智能发展思路、技术路线和典型案例。讲解运营商网络重构、智慧运营和5G规划建设中的难点和瓶颈,以及人工智能技术所能发挥的成效、基于NVIDIA GPU的工程实践。

中国移动人工智能规划及发展,中国移动统一AI平台采用Kubernetes+Docker的基础架构,以 NVIDIA NGC提供的镜像为基础,集成了TensorFlow、PyTorch、Caffe等主流AI算法框架,基于 RAPIDS 算法库利用GPU实现对传统机器学习的10倍以上加速,规模化承载AI应用,为集团节约成本高达5亿元/年。

NVIDIA GPU和Mellanox网络计算技术挑战AI性能新极限是来自mellanox公司Marketing的Qingchun Song的分享,主要介绍了Socket Direct、Adaptive Routing、RDMA and GPU Direct、SHARP-Data Aggregation四个方面。整体感觉mellanox公司在加速HPC/AI框架上做了很多工作,在局部性能性能上也取得了不错的效果,比如:把集合通信算法AllReduce跑在他们的IB交换机,能使计算时间从30~40us缩短到3~4us;结合NVIDIA的集合通信库NCCL他们采用SHARP技术,在ResNet50上性能提升了10%~20%。。。
个人感觉:mellanox提供了很多有意义的性能提升技术,但是这些都是要基于使用他们的硬件,而这对于如果一个产品刚开始没有使用他们家的产品,又想利用他们家的技术来获得性能提升,可能就需要整体硬件的更迭改造,但是往往收益又赶不上这刮骨疗伤的成本,鱼和熊掌不可兼得啊!

GTC 2019参会整理的更多相关文章

  1. AWS re:Invent 2019参会有感

    感谢AWS方面的邀请,以及公司给予的机会,近期有幸赴美参与了享有盛名的AWS re:Invent大会.会议期间自己还算勤勉,参加了尽可能多的session.现笔者也已回到国内,交个作业,写一篇短文作为 ...

  2. Java 核心编程技术干货,2019 最新整理版!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 以下是Java技术栈微信公众号发布的所有关于 Java 的技术干货,会从以下几个方面汇总,本文会长期更新. Java 基础篇 ...

  3. 2019最新整理JAVA面试题附答案

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  4. 2019最新整理PHP面试题附答案

    1.什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰.主要特征:封装.继承.多态. 2.SESSION 与 COOKIE的区别是什么,请从协议, ...

  5. Nvidia和Google的AI芯片战火蔓延至边缘端

    AI 的热潮还在持续,AI 的战火自然也在升级.英伟达作为这一波 AI 浪潮中最受关注的公司之一,在很大程度上影响着 AI 的战局.上周在美国举行的 GTC 2019 上,黄仁勋大篇幅介绍了英伟达在 ...

  6. 今天是 Java 诞生日,Java 24 岁了!

    今天是 Java 诞生日,Java 今年 24 岁了,比栈长还年轻..还有得搞,别慌!作为一名Java语言的学习者,对Java的起源和发展有个大概的了解应是必要的. 1991年,Sun公司成立Gree ...

  7. Spring Boot 实现定时任务的 4 种方式

    作者:Wan QingHua wanqhblog.top/2018/02/01/SpringBootTaskSchedule/ 定时任务实现的几种方式: Timer:这是java自带的java.uti ...

  8. Java并发编程中的若干核心技术,向高手进阶!

    来源:http://www.jianshu.com/p/5f499f8212e7 引言 本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在 ...

  9. Java程序员必备的10个大数据框架!

    作者:java妞妞 blog.csdn.net/javaniuniu/article/details/71250316 当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语 ...

随机推荐

  1. 学习完vue指令 做的一个学生信息录入系统

    一.demo实现原理 输入完个人信息后  点击创建用户  数据就会显示在下面的表格中 用到了vue中的数据双向绑定 v-model v-for 还要js正则 数组的unshift splice 等方法 ...

  2. Java的内存分配机制

    Java程序运行在JVM(Java  Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可 见JVM的重要性 ...

  3. python线程条件变量Condition(31)

    对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition. 一.线程条件变 ...

  4. Acquistion Location Confidence for accurate object detection

    Acquistion Location Confidence for accurate object detection 本论文主要是解决一下两个问题: 1.分类得分高的预测框与IOU不匹配,(我猜应 ...

  5. linux字符集修改

    首先介绍一下变量. 1.变量类型:本地变量.环境变量.局部变量.特殊变量(内置).参数变量.只读变量. 2.bash的配置文件:profile类和bashrc类 profile类:为交互式登录的she ...

  6. jquery浅复制和深复制区别

    jquery浅复制和深复制区别

  7. 使用WireMock进行更好的集成测试

    无论您是遵循传统的测试金字塔还是采用诸如"测试蜂窝"这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试用例. 您可以编写不同类型的集成测试.从持久性测试开始,您可以检查组 ...

  8. MySQL统计各个表中的记录数

    通过下面的SQL语句可以统计出数据库的各个表中的记录数: select table_schema, table_name,table_rows from information_schema.tabl ...

  9. for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本

    7月13日任务 20.10 for循环20.11/20.12 while循环20.13 break跳出循环20.14 continue结束本次循环20.15 exit退出整个脚本扩展select用法 ...

  10. Scala: Case classes

    Case classes are like regular classes with a few key differences which we will go over. Case classes ...