有奖征文第十弹|永不止步:永远在路上的探索之旅

原创 英伟达NVIDIA中国 2024-01-25 16:57

NVIDIA 百万中国开发者故事有奖征文系列最终篇——终于与大家见面啦!


“如果说 NVIDIA GPU 是人的四肢,那么 CUDA 就是人的大脑,它是并行加速计算的灵魂和总加速师。”


最后一位与大家分享 NVIDIA 开发故事的是南洋理工大学的高级研究员 Samuel Chen,让我们一起来听听他从最初与 CUDA 擦肩而过,到对 CUDA 再次充满好奇,再到最终深感 CUDA 的神奇魅力、与 CUDA 一起成长的这段“跌宕起伏”的经历吧。



01

初识 CUDA


2008 年,我还只是个刚入学不久的研究生,人工智能、超级计算机对我来说,还只是陌生的名词。在一次学术报告中,我听到了一个新名词——CUDA,当时老师只是做了一个简单的介绍,我一时间还无法理解这个新名词背后的含义。

在随后几次学术交流中,我慢慢了解了 CUDA 是一种新的编程方式,与过去十几年学的 C 语言编程有很大的区别,运行方式也不一样,传统的 C 语言代码编译链接成二进制代码,在 CPU 中单线程运行,而 CUDA 代码建立在 C 语言基础之上,编译后在显卡中并行运行。由于传统编程概念已经根深蒂固,我一时还无法快速接受 CUDA 这种并行编程思想,并且由于当时硬件条件所限,很难有上机练习的机会,所以也就没有继续往下学习。就这样,CUDA 匆匆而来,又匆匆地与我擦肩而过。


02

初见 CUDA



自从 2007 年 CUDA 问世以来,显卡性能逐渐提高,被广泛用于各种复杂计算任务中。与此同时,CUDA 作为 NVIDIA 产品最基本的 SDK 工具,在问世以来的十年间发行了近 20 个主要版本,并且包含了 C 和 Python 语言 API 接口。同时,在 GPU 的加持下,计算器的算力实现质的飞跃,在带有 NVIDIA 显示的 PC 机上实现复杂神经网络的训练也变成了可能。这从另一方面推动了 40 年前发明的神经网络的发展。


2015 年,Lecun 等人提出了深度学习。其本质上是经典神经网络的延续,这使得大规模的神经网络训练任务可以借助 GPU 和 CUDA 完成。随后,贾扬庆提出了第一个神经网络训练、推理框架 Caffe,随后深度学习训练框架如雨后春笋般出现,并带有不同编程语言的 API 接口,适合不同领域的技术人员使用。其中最流行的神经网络训练框架是由 Facebook(Meta 的前身)创立的 PyTorch 平台,该平台包含了神经网络接口以及 CUDA 工具的接口,真正意义上实现了一键调用 CUDA,为神经网络训练任务提供了方便。


2016 年,我开始学习并研究神经网络,用 Caffe 在 1080Ti GPU 上训练了自己第一个卷积神经网络。随后,2017 年,我又在 PyTorch 训练了第二个神经网络 U-Net,成功用于医学图像分割。在训练过程中,我深刻体会到 GPU 和 CUDA 的计算效率,训练一个卷积神经网络只需要 10 个小时,这在 80 年代末、90 年代初,神经网络提出之时是不可想象的。


03

与 CUDA 一起成长



随着对神经网络的深入了解以及 CUDA 的使用频率增加,我逐渐认识到 CUDA 在大规模计算任务中发挥的举足轻重的作用。如果说 NVIDIA GPU 是人的四肢,那么 CUDA 就是人的大脑,它是并行加速计算的灵魂和总加速师。因此,我对 CUDA 充满了好奇,想一探究竟为何它如此神奇,同时也想弥补当年未能深入系统学习 CUDA 的遗憾。 

抱着这个想法,我陆续从图书馆借阅了一些有关 CUDA 的书籍,通过自学的方式来学习 CUDA 编程。由于忙于论文,缺少系统性学习,最终没有坚持下去,又一次与 CUDA 擦肩而过。

2021 年, NVIDIA 举办了一场线上 CUDA 编程教学活动——CUDA 冬令营,这是一个千载难逢的学习 CUDA 编程的好机会,并且提供了 Jetson Nano 作为上机实验平台,不但能学习 CUDA 编程技术,还能体验边缘设备。对 CUDA 和边缘计算神往以久的我报名参加了此次活动,在为期七天的教学活动中,我不仅从宏观上对 CUDA 的工作原理和体系结构有了更深入的了解,而且也学会了 CUDA 编程的基本规则,并且编写了平生第一段 CUDA 代码,在 Jetson Nano 上成功运行。

接下来,我又参加了 NVIDIA 的一系列黑客松活动,其主要目的是把平时用到的卷积神经网络进行剪枝、量化等优化操作,然后用 TensorRT 进行加速,并且在 Jetson Nano 上运行。黑客松活动不像 CUDA 冬令营一样直接写 CUDA 代码,而是将 CUDA 应用于实际项目当中,例如,将 MobileSSD、Yolov5 等重型模型进行“瘦身”优化,以便在 Jetson Nano 这样的边缘设备上运行并实现实时目标检测。

像这样有益的活动,我不仅自己参加,而且也鼓励学弟们一起参加。随后,NVIDIA 又陆续举办了 CUDA 夏令营和黑客松活动。我带着学弟学妹们组成团队,一起学习、接受一次又一次的挑战,在多次活动中,我们陆续将 YOLO 系列的模型进行优化并在 Jetson Nano 上运行,实现了实时的各类物体检测。

CUDA 的学问深不见底,学习 CUDA 是一条漫长的路。同时,边缘设备性能越来越高,人工智能模型越来越多样化,尤其是近年来大语言视觉模型已经成功用于各个领域,它是机器人的大脑,控制机器人的动作,促使其与人沟通。如何将大语言视觉模型优化并运行在 Jetson 系列的边缘设备上,这将是下一个挑战性的课题。

最后,借用恩师的一句话来结束我的分享,年年岁岁花相似,岁岁年年“人”不同。We are doing, we are on the way.


感谢这位开发者带来的动人分享!其实不止 CUDA,人工智能开发的学问是深不可测的,这条开发之路也注定是漫长而充满挑战的。在这个过程中,仍有许多坚持不懈、不畏困难的开发者,他们与 NVIDIA 携手,持续探索,不断前行。开发之旅永无止境,探索的脚步永远在路上!




GTC 2024 将于 2024 年 3 月 18 至 21 日在美国加州圣何塞会议中心举行,线上大会也将同期开放。点击 “阅读原文” 扫描下方海报二维码,立即注册 GTC 大会


评论
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 666浏览
  • 飞凌嵌入式基于瑞芯微RK3562系列处理器打造的FET3562J-C全国产核心板,是一款专为工业自动化及消费类电子设备设计的产品,凭借其强大的功能和灵活性,自上市以来得到了各行业客户的广泛关注。本文将详细介绍如何启动并测试RK3562J处理器的MCU,通过实际操作步骤,帮助各位工程师朋友更好地了解这款芯片。1、RK3562J处理器概述RK3562J处理器采用了4*Cortex-A53@1.8GHz+Cortex-M0@200MHz架构。其中,4个Cortex-A53核心作为主要核心,负责处理复杂
    飞凌嵌入式 2025-01-24 11:21 24浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 324浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 194浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 74浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 123浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 159浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 619浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 178浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 134浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦