干货 | 加速AI发展!一文了解GPU Computing

640?wx_fmt=png

来源: 启迪之星上海

摘要:英伟达的显卡对于游戏达人来说再为熟悉不过,并逐渐融入到我们的日常生活当中。


英伟达的显卡对于游戏达人来说再为熟悉不过,并逐渐融入到我们的日常生活当中。近日,世界上第一款“光线追踪”GPU“Quadro RTX GPU”的面世,更是被英伟达创始人兼CEO黄仁勋称为“自CUDA以来,英伟达推出最重要的一块GPU”。英伟达为了这块显卡,前后打磨了十年的时间。它的出现,将颠覆现有图形渲染计算。


我们荣幸地邀请到了英伟达亚太区架构主管赵立威先生,他围绕着《GPU计算前沿技术进展及其在AI领域的应用》的话题,与20余位创业者进行了深刻交流,人工智能领域的搬砖男女都赶紧看过来吧~

 

一、GPU computing最新技术进展

 

赵立威:我非常有幸在过去的20多年间,经历了IT从起步到大热的整个发展过程。20年前,我在IBM,那时候我自己都没有一台PC机,邮件都跑在mainframe上。我有一张软盘,它相当于我的密钥,把软盘插入办公室的诸多电脑之一,我就能访问我在主机上的邮件服务。这可以说是前PC时代。


过去这些年,计算形态从PC到移动计算到云再到现在的人工智能。但事实上AI并不是这两年才开始研究,几十年前就已经开始了。那么为什么现在人工智能这么火呢?它离不开三算的发展。何为三算?即算法,算力(计算力),算据(数据)。

 

640?wx_fmt=png

图源:http://news.ikanchai.com/2017/1204/179891.shtml

 

那么这三算是怎样互相作用,然后驱动人工智能从2012年一下子发展到现在的状态呢?这里有一个小故事可以与大家分享。

 

大家可能都听说过Alex Krizhevsky,他在博士期间设计了人类历史上第一个真正意义上的深度神经网络AlexNet——一共是八个学习层,包含六千万个参数。他的导师Hinton(被称为“神经网络之父”)并不支持他将这个作为博士论文的研究方向,因为当时的计算都是基于CPU的计算方式,这样的神经网络模型训练一次就要几个月的时间;然后要手动调参,再重新训练,这样反复下来,想要得到一个靠谱的神经网络模型,大约需要几十遍;运气好的时候十几遍的训练次数,可能要花费数十年的时间。但是Alex作为一个典型的Geek并不放弃,在学习数学之余他还学习了大量与编程相关的知识,其中就包括CUDA。

 

CUDA是NVIDIA创造的一个并行计算平台和编程模型。它利用图形处理器(GPU)能力,实现计算性能的显著提高。NVIDIA是在2006年推出的CUDA,自那以后,股价从最初的7美元一路攀升到现在的260多美元。

 

Alex用CUDA重新对他的模型进行编程,然后买了两块当时非常强大的显卡GTX580,花了6天时间训练AlexNet,并且不断调优和完善。后来参加了李飞飞主导的ImageNet大赛,并且获得了当年的冠军。AlexNet当时能够达到的图像识别精度,遥遥领先于第二名。大赛之后,Alex和他的导师Hinton成立了公司,这个公司几个月以后被Google以4亿美金收购。这是一个靠GPU创富的故事,可以看到,GPU与深度神经网络的第一次结合创造了4亿美金的价值。

 

640?wx_fmt=jpeg

英伟达™精视™ (NVIDIA® GeForce®) GTX 580

 

在这之后,我们经历了近似寒武纪时期的神经网络模型大爆发的时代。2012年之前,人们虽然一直在研究,但是没有足够的算力来支撑这些算法,但是新的计算方式GPU Computing的出现,支撑了同类型的神经网络模型的训练;从而促成了各种模型的爆发式增长,进而进入到人工智能的时代。


如今,大家可以使用Caffe、TensorFlow、Theano等等开源的深度学习平台来进行实现自己的算法,也可以在CUDA上进行编程。人工智能研究领域的头部公司,他们现在推荐的算法模型已经达到了相当复杂的程度,一个模型可以达到1个T甚至几个T的规模,包含几十亿甚至上百亿个参数,数据量更是可想而知。这样的模型训练起来难度就越发高。因此,三算就这样纠缠在一起,互相促进、互相提升。

 

大家都知道著名的摩尔定律,其内容是当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。但是根据OPEN AI的今年年初的测算,从AlexNet出现以后,到去年年底一共大概5年的时间,在人工智能模型的训练层面,我们对于计算力的需求提升了30万倍。


我们都知道在摩尔定律的初期25年间,实现了性能5年10倍,25年10万倍的提升。这是摩尔定律在CPU年代为我们带来的计算力的提升。但是这对于人工智能模型对计算力的需求是远远不够的。因此,为了满足这种计算力的需求,我们不断地在GPU层面打磨我们的技术,提升各方面的性能。在这样的基础之上,我们也看到越来越多的人开始基于CUDA去编程训练自己的模型,Google、Facebook等也基于CUDA构建自己的开源深度学习平台。

 

NVIDIA于2018年3月在GPU技术大会上推出了HGX-2 平台,以及以HGX-2为架构的 DGX-2服务器。它是一件高密集,强性能并具有极佳的热性能的电子产品。DGX-2架构的核心是NVSwitch内存结构,本质上,NVSwitch结构为GPU节点创建了一个512 GB的巨大的共享内存空间,以 10 千瓦的功耗,在TensorCore上达到近2Petaflops的算力。


640?wx_fmt=png

HGX-2 平台的内嵌 NVSwitch 拓扑结构的框图(图源:NextPlatform)

 

所谓GPU Computing不是一个单单拼硬件的事,如何来把这些算力用到人工智能算法和实际应用场景下才是大多数人应该关注的重点。大家提到英伟达可能都觉得是一家芯片公司,但其实我们公司全球一共大概有一万两千人;其中一万一千人都是工程师,在这些工程师里,七千个都是软件工程师,他们共同来搭建和完善基于GPU Computing的人工智能生态。

 

640?wx_fmt=jpeg


目前来说,人工智能的应用场景比较多的集中在Consumer Internet,国内以BATJ、TMD为代表,美国主要是方佳、苹果、微软和Netflix等等。这些公司是人工智能领域的第一批先锋,他们在这个领域投入了大量的资金,堆积了很多的算力,把业内最有名的博士都招到他们公司,他们的每一个服务动辄就每天上亿的使用量(DAU,Daily Active User),因此又收集了大量的数据。李彦宏在2018 Create百度开发者大会上提到一个Intelligent Chasm的概念,可以理解为智能沟壑,说的是和这些头部公司所堆积的算力以及数据相比,全球其他所有公司的算力加起来可能也就是跟他们差不多的规模,甚至还不如。这种算力和数据的差距像天堑一样。

 

那么如何把这些看似高高在上的人工智能算法和还比较昂贵的算力,以及很难获取的数据,变得更加容易,这是我们过去已经做了的以及接下来的时间里要去做的工作。

 

以TensorRT为例,NVIDIA TensorRT是一种高性能神经网络推理(Inference)引擎,用于在生产环境中部署深度学习应用程序,应用有图像分类、分割和目标检测等,可提供最大的推理吞吐量和效率。TensorRT是第一款可编程推理加速器,能加速现有和未来的网络架构。通过TensorRT的大幅度加速,服务提供商能够以经济实惠的成本部署这些计算密集型人工智能工作负载。


二、AI行业案例分享


人工智能比较常用的应用场景除了互联网之外,还有自动驾驶、医疗、电信等等。

 

1. 推荐引擎


过去是人找信息,现在则转变为信息找人。大家可能都用过快手或者抖音之类的小视频APP,这些小视频的背后,都有神经网络算法在支撑。你在使用一个推荐引擎的同时,可能有几十个模型在对你进行评估,五年前可能只是sensing,感知你的需求,现在是从各种维度对你进行评估,多方面平衡,不光要吸引人点击,还要你停留足够长的时间;而吸引人点击和吸引人停留的算法又有很大的差别。


国内几乎所有大的互联网公司,都在训练自己的推荐模型,做到千人千面。推荐对于这些公司是非常重要的,因为互联网变现几乎都和推荐有关,电商类不用说,食品类比如国内的快手、抖音,国外的Netflix、Hulu,资讯类的比如Google news、今日头条,还有音乐类,社交类等等。用户的使用又在给公司提供新的数据,可以用于训练更有效的模型。这一方面提升了用户体验,但另一方面可能造成用户无法脱离这些产品。



640?wx_fmt=png

 

2. 医疗


在英伟达初创加速计划的会员中,有很大一部分都是人工智能+医疗的项目。医疗项目的一大挑战是诊断。目前来讲还是很难通过深度学习来做诊断,但市场仍然很大。根据一些相关报告上的数据,对于一些慢病诊断,使用深度学习算法进行辅助之后,可以将准确率提高30%-40%,同时成本下降一半。


以视网膜扫描为例。人们常说眼睛是心灵的窗户,事实上眼睛也是身体的窗户,人眼的视网膜上分布着丰富的毛细血管,通过扫描视网膜,可以检测到人身体上的一些问题,比如糖尿病的次生灾害之一就是视网膜的病变,以及心血管疾病。


在国内,能够通过视网膜扫描来进行诊断的医生比较少;而且在国内,部分医生是不能下诊断的。通过深度学习技术,可以将这些医生的经验进行收集,从而辅助诊断。目前这项技术还很难应用到医院里,但是一些保险公司非常愿意通过这种技术,来获得客户患病概率的一些信息,从而辅助制定保单金额。

 

3. 自动驾驶


为了进行自动驾驶的研发,英伟达有自己的一个server farm。这个server farm内有 1000台DGX-1,具有1个E(1E=1024P=1024*1024T)的浮点运算能力,用于自动驾驶模型的训练。一辆车在外面跑一天,会产生上T的数据量,一年可能是上P的数据量。但即使是这样,仅仅靠实车上路收集数据也远远不够,根据估算,自动驾驶车辆至少要跑10万英里,才能勉强满足上路的标准。就现在而言,自动驾驶的车辆脱把率并不高,Google的自动驾驶车辆大概是几千英里需要扶一次方向盘,其他的情况也基本一样。


我们现在的做法是把实车里的模型拿到server farm里,让他在服务器里的高度仿真的模拟环境下进行训练,在训练的过程中产生新的数据,然后用这些数据再去训练新的模型。通过这种做法来尝试加速对自动驾驶车辆模型的训练。

 

640?wx_fmt=png

图源:pixabay.com

 

在AI应用场景的分享之后,主讲人赵立威还向大家详细介绍了NVIDIA的新品Quadro RTX,它能够帮助游戏和电影行业实现实时的光线追踪和渲染。最后,他以英伟达在硅谷的新办公大楼“Endeavor”和“Voyager”作结,表达了英伟达在人工智能领域将不断努力,并期待人工智能技术带领人类走入未知领域的愿景。


【嘉宾简介】

640?wx_fmt=png

赵立威,解决方案架构主管, NVIDIA 亚太区资深IT及信息化专家,具有二十余年的IT系统实施、咨询和管理经验。曾就职于多家全球知名IT企业并从事技术,咨询和管理工作,具有丰富的IT理论和实践经验。目前,赵立威是英伟达亚太区解决方案架构部门的主管,负责AI、Deep Learning和HPC等技术领域的解决方案开发及技术合作等工作。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

640?wx_fmt=jpeg

Quadtree Displacement Mapping with Height Blending Michal Drobot Overview Introduction Overview of Ray-Tracing Algorithms Quadtree Displacement Mapping Self-Shadowing Ambient Occlusion Surface Blending General Advice Conclusion Bibliography NPR Effects Using the Geometry Shader Pedro Hermosilla and Pere-Pau Vazquez Introduction Previous Work Silhouette Rendering Pencil Rendering Acknowledgments Bibliography Alpha Blending as a Post-Process Benjamin Hathaway Introduction The Alternatives The Source Artwork Initial Attempts The Screen-Space Alpha Mask 3.6 3.7 3.8 3.9 3.10 3.11 4 4.1 4.3 4.4 4.5 4.6 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 6.1 6.2 6.3 6.4 6.5 6.6 Alpha Reference Issues Rendering Pipeline Integration Conclusion Demo Acknowledgments Source Code Bibliography Virtual Texture Mapping 101 Matth¨aus G. Chajdas, Christian Eisenacher, Marc Stamminger and Sylvain Lefebvre Introduction Implementation Details Conclusion Shader Code Acknowledgments Bibliography Pre-Integrated Skin Shading Eric Penner and George Borshukov Introduction Background and Previous Work Pre-Integrating the Effects of Scattering Scattering and Diffuse Light Scattering and Normal Maps Shadow Scattering Conclusion and Future Work Appendix A: Lookup Textures Appendix B: Simplified Skin Shader Bibliography Implementing Fur Using Deferred Shading Donald Revie Deferred Rendering Fur Techniques Fur Implementation Details Conclusion Acknowledgments 7 7.1 7.4 7.5 7.6 7.7 7.8 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 9 9.1 9.2 9.3 10 10.1 10.2 10.3 10.4 10.5 Bibliography Large-Scale Terrain Rendering for Outdoor Games Ferenc Pint´er Introduction Content Creation and Editing Runtime Shading Performance Possible Extensions Acknowledgments Bibliography Practical Morphological Antialiasing Jorge Jimenez, Belen Masia, Jose I. Echevarria, Fernando Navarro and Diego Gutierrez Overview Detecting Edges Obtaining Blending Weights Blending with the Four-Neighborhood Results Discussion Conclusion Acknowledgments Bibliography Volume Decals Emil Persson Introduction Decals as Volumes Conclusions Bibliography Practical Elliptical Texture Filtering on the GPU Pavlos Mavridis and Georgios Papaioannou Introduction Elliptical Filtering Elliptical Footprint Approximation Results Conclusions 10.6 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 12 12.1 12.2 12.3 12.4 12.5 13 13.1 13.2 13.3 13.4 13.5 13.6 14 14.1 14.2 Acknowledgments Bibliography An Approximation to the Chapman Grazing-Incidence Function for Atmospheric Scattering Christian Schuler Introduction Atmospheric Scattering The Chapman Function Towards a Real-Time Approximation Implementation Putting the Chapman Function to Use Conclusion Appendix Bibliography Volumetric Real-Time Water and Foam Rendering Daniel Scherzer, Florian Bagar and Oliver Mattausch Introduction Simulation Rendering Artist Control Conclusion Bibliography Inexpensive Antialiasing of Simple Objects Mikkel Gj0l and Mark Gj0l Introduction Antialiasing via Smoothed Lines Rendering Lines Discussion Conclusion Acknowledgments Bibliography Practical Planar Reflections Using Cubemaps and Image Proxies Sebastien Lagarde and Antoine Zanuttini Introduction Generating Reflection Textures 14.3 14.4 14.5 15 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16 16.1 16.2 16.3 16.4 16.5 16.6 17 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 Using Reflection Textures Conclusion and Future Work Acknowledgments Bibliography Real-Time Ptex and Vector Displacement Karl Hillesland Introduction Packed Ptex Runtime Implementation Adding Displacement Performance Costs Memory Costs Alternatives and Future Work Conclusion Acknowledgments Bibliography Decoupled Deferred Shading on the GPU Gabor Liktor and Carsten Dachsbacher Introduction Decoupled Sampling in a Rasterization Pipeline Shading Reuse for Deferred Shading Implementation Results Acknowledgments Bibliography Tiled Forward Shading Markus Billeter, Ola Olsson and Ulf Assarsson Introduction Recap: Forward, Deferred, and Tiled Shading Tiled Forward Shading: Why? Basic Tiled Forward Shading Supporting Transparency Support for MSAA Supporting Different Shaders Conclusion and Further Improvements Bibliography 18 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 19 19.1 19.1 19.3 19.5 19.6 19.7 19.8 20 20.1 20.2 20.3 20.4 20.5 20.6 21 21.1 21.2 21.4 21.5 Forward+: A Step Toward Film-Style Shading in Real Time Takahiro Harada, Jay McKee and Jason C. Yang Introduction Forward+ Implementation and Optimization Results Forward+ in the AMD Leo Demo Extensions Conclusion Acknowledgments Bibliography Progressive Screen-Space Multichannel Surface Voxelization Athanasios Gaitatzes and Georgios Papaioannou Introduction Overview of Voxelization Method Progressive Voxelization for Lighting Performance and Evaluation Limitations Conclusion Acknowledgments Bibliography Rasterized Voxel-Based Dynamic Global Illumination Hawar Doghramachi Introduction Overview Implementation Handling Large Environments Results Conclusion Bibliography Per-Pixel Lists for Single Pass A-Buffer Sylvain Lefebvre, Samuel Hornus and Anass Lasram Introduction Linked Lists with Pointers (Lin-alloc) Post-sort and Pre-sort Memory Management 21.6 21.7 21.8 21.9 22 22.1 22.2 22.3 22.4 22.5 23 23.1 23.2 23.3 23.4 23.5 23.6 24 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 25 Implementation Experimental Comparisons Conclusion Acknowledgments Bibliography Reducing Texture Memory Usage by 2-Channel Color Encoding Krzysztof Kluczek Introduction Texture Encoding Algorithm Decoding Algorithm Encoded Image Quality Conclusion Bibliography Particle-Based Simulation of Material Aging Tobias Gunther, Kai Rohmer and Thorsten Grosch Introduction Overview Simulation Preview Rendering Results Conclusions Bibliography Simple Rasterization-Based Liquids Martin Guay Overview Introduction Simple Liquid Model Splatting Grid Pass Particle Update Rigid Obstacles Examples Conclusion Bibliography Next-Generation Rendering in Thief 25.1 25.2 25.3 25.4 25.5 25.5.3 25.6 25.7 26 26.1 26.2 26.3 26.4 27 27.1 27.2 27.3 27.4 27.5 27.6 27.7 27.8 27.9 27.10 28 28.1 28.2 Peter Sikachev, Samuel Delmont, Uriel Doyon and Jean-Normand Bucci Introduction Reflections Contact-Hardening Shadows Lit Particles Compute-Shader-Based Postprocessing Results Conclusion Acknowledgments Bibliography Grass Rendering and Simulation with LOD Dongsoo Han and Hongwei Li Introduction Render Grass Blades Simulation Conclusion Bibliography Hybrid Reconstruction Antialiasing Michal Drobot Introduction Overview Related Work Hybrid Antialiasing Overview Temporally Stable Edge Antialiasing Temporal Super-Sampling Temporal Antialiasing (TAA) Final Implementation Results Discussion Conclusion Bibliography Real-Time Rendering of Physically Based Clouds Using Precomputed Scattering Egor Yusov Introduction Light Transport Theory 28.3 28.4 28.5 28.6 28.7 29 29.1 29.2 29.3 29.4 29.5 29.6 30 30.1 30.2 30.3 30.4 30.5 31 31.1 31.2 31.3 31.4 31.5 32 32.1 Precomputed Solutions Volume-Aware Blending Implementation Results and Discussion Conclusion Bibliography Sparse Procedural Volume Rendering Doug McNabb Introduction Overview of Current Techniques Overview Metavoxels Algorithm Conclusion Bibliography Adaptive Virtual Textures Ka Chen Introduction Procedural Virtual Textures Basics Adaptive Virtual Textures Virtual Texture Best Practices Conclusion Bibliography Deferred Coarse Pixel Shading Rahul P. Sathe and Tomasz Janczak Overview Introduction and Background Algorithm Performance Conclusion Bibliography Progressive Rendering Using Multi-frame Sampling Daniel Limberger, Karsten Tausche, Johannes Linke and Jürgen Döllner Introduction 32.2 32.3 32.4 32.5 Approach Multi-frame Rendering Techniques Conclusion and Future Work Bibliography
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值