NVIDIA 百万中国开发者故事有奖征文第五弹精彩上线!
本期我们采访到了一位年轻的开发者——知乎用户"光辉和星辰",出于对编程和软件开发的浓厚兴趣,他邂逅了 NVIDIA。一起来听听他与 NVIDIA 的故事吧!
Q 你是从什么时候开始成为一名开发者的呢?从事开发有多少年了?
A 我目前是一名大学生,从事软件相关开发大概有一两年,这是我的业余爱好。开发项目主要针对 Robotics Research,也就是机器人研究领域。
Q 最初从事开发时,有具体或者任何明确的目标吗?
A 开始开发时并没有很明确的目标,只是对编程和软件开发很有兴趣。我能通过代码和计算机实现很多事情以及解决很多问题。一开始的编程启蒙实际上来自于大学里的 CSC1001 教 Python 编程的课程,后续逐渐对实现高性能的程序产生了兴趣,就开始学习 C++,再后来发现我的研究兴趣在 Robotics 领域,于是就想利用我在软件开发领域的知识,实现更高性能、实时性更强的算法或程序,这其中就有极大概率会用到 NVIDIA 的产品来提高开发效率。
Q 可以分享一下过往的成功开发经历吗?
A CoNi-MPC 的科研项目。CoNi-MPC 全称是 Cooperative Non-inertial Frame Based Model Predictive Control,它是一个基于非惯性坐标系的协作式模型预测控制的框架,可以相较传统方法更方便地应用于无人机的编队控制、跟随控制,也可以应用于无人机自主降落在移动平台上类似的合作式任务。
Q 这类开发项目有什么特殊要求或者挑战吗?
A 开发者需要既要有良好的机器人学的基础知识,同时还要把这些知识通过代码去实现。比如,开发者需要适时利用并行算法或者硬件加速来提高某些矩阵计算的效率。
例如传感器数据实时处理中的大规模点云数据处理:Lidar 所产生的大批量的点云数据通常可能需要转换坐标系(矩阵乘法),可以通过并行计算来提高处理的实时性。除此之外,还有传感器数据实时处理中的高频率图像处理:特殊的定位算法可能需要利用高频率的图像来得到精确的位置定位,利用并行计算进行图像的处理,可以显著提升实时性。
Q 你是从什么时候开始使用 NVIDIA 产品来进行开发的呢?
A 其实在大二暑假期间,我作为夏令营的助教已经初步接触过 NVIDIA Jetson Nano。当时我的了解并不深入,只知道它是一种集成 GPU 的边缘计算设备,并没有进一步探索。首次大规模运用 NVIDIA 产品进行编程是在大学三年级。那时我参加了操作系统课程,教授提供的作业里有部分作业需要使用 CUDA 进行设计。这也是我初次接触 CUDA,用于实现并行和并发开发。
Q 在开发工作中还使用过哪些其他的 NVIDIA 产品?
A 主要使用了 CUDA,Jetson 嵌入式设备,还有 Isaac Gym。
Jetson 系列产品给我的机器人应用部署提供了很好的平台,尤其可以在上面使用 CUDA 无缝地把在桌面开发的软件直接迁移到 Jetson Orin NX 上,同时提升了无论是处理数据还是核心算法的效率。同时 Jetson 系列的很多产品非常小巧,很容易把它们嵌入到小型的无人机设备上。
NVIDIA 产品的文档非常全面,同时开源工作也做的相对比较好,开发者可以很快上手。
Q 是否可以分享一下常用的 NVIDIA 开源页面地址?
A 当然可以:
目前,我正在利用 NVIDIA 的 Isaac Gym 完成学院的 Capstone Project,通过强化学习实现多无人机的运动规划和控制。之后我可能还会继续使用 Jetson 系列产品来加速训练好的网络模型的推断。在此祝 NVIDIA 中国开发者社区越来越好,有更多的开发者可以参与进这个社区,大家一起交流、分享开发经验,互相学习。
——知乎用户“光辉和星辰”
感谢这位开发者与我们分享他与 NVIDIA 之间的精彩故事,让我们看到了更多像他一样,充满热情与活力的开发者。他们与 NVIDIA 共同致力于通过人工智能改变和塑造未来的面貌,以创意和努力推动着技术的进步与创新。