北京联合大学利用 Jetson TK1 进行无人驾驶应用

作者 英伟达中国

自从NVIDIA在美国先后与奥迪、BMW、Tesla等高级房车大厂进行智能化无人驾 驶自动导航系统之后,为汽车产业注入新的创新动力,在全球汽车产业掀起一波巨大的革命风潮,此举也撼动国内相关产业以及科研单位高度重视,并相继投入经费 与资源,打造属于中国自主技术的智能无人驾驶系统。

由 北京联合大学副校长鲍泓教授率领的智能车团队,于数年前便与北汽集团着手开发智能汽车,其“京龙一号”与“京龙二号”分别采用北汽集团的C70轿车与 C30纯电动车两款为基础,进行智能化改良的产品,于2013年完成最基础的环境测试之后,在2014年11月国内智能无人驾驶汽车的障碍物检测、安全预 警、障碍物绕行与超车等性能比赛中,综合分数分别获得第三、四名的殊荣。

当2015年进入城市道路智能驾驶的开发初期,由于众多摄像头、雷达、传感器导入庞大的 数据量,在原有计算性平台上明显发现性能不足。经过一段时间的调研,发现NVIDIA Jetson TK1的拥有强大的计算能力与图形处理能力,并且相 对低的功耗,非常适合车载计算系统应用,于是从三月份开始采购 NVIDIA Jetson TK1开发板,并着手进行软件与算法移植。

经过研发团队不到半年的努力,先将Canny和Hog两个针对行人和障碍物检测的算法进 行移植到 Jetson TK1上并进行优化,结果得到比原本在Intel Core i7-3778平台高出1.5倍和2.3倍性能提升。同时以此基 础,北京联合大学智能车参加2015年8月29日北京郑开大道智能车公开测试,仅用60分钟便完成全程32公里、26个路口的自主驾驶,成绩斐然。

 项目内容介绍

目前北京联合大学的两款智能车中,“京龙一号(C70)”搭载2个高清摄像头与4个雷达 (1*64线 + 1*8线 + 1*1线 + 1*毫米波),“京龙二号(C30)”搭载2个高清摄像头与5个雷达(2*8线 + 2*4 线 + 1*1线),再加上其他诸多的传感设备,要处理如此大量的实时数据,经过测算至少需要数百GFLOPS计算性能才足以担任信息处理平台的角色。

北 京联合大学项目联系人梁军老师表示,在未发现NVIDIA Jetson TK1之前,研发团队一直为了找不到符合“高性能、低功耗”的合适硬件平台感到 十分苦恼,因为汽车行驶速度与有限功耗的限制下,必须同时兼顾有足够高的计算性能来缩短反应时间,同时又要在很低的电力消耗下执行运行,坊间绝大部分的嵌 入式计算设备明显存在性能不足、台式机系统又需要过高的功耗,实在左右为难。

后来发现NVIDIA TK1芯片之后,经过测算其性能能达到将近300GFLOPS, 额定功耗为5W,并且具备足够的对应IO接口连接周边,而且对图像及雷达数据等智能车关键应用的处理,都具有计算密集和访存密集的程序特征,这些应用特征 非常适合GPU计算平台细粒度大规模并行的特点。因此,我们选择GPU计算平台来提高智能车应用程序的性能,实现对信息数据的实时处理整体来说已经满足很 大部分的需求,如此一来,研发团队便可省却硬件集成上的大量时间成本。

不过移植过程并非十分顺利。梁军老师表示,一开始由于研究人员对Ubuntu操作系统、CUDA并行编程模型以及接口驱动并不熟悉,所幸供货厂商建立的TK1技术社区内有许多技术高手给予足够的支持与协助,加上开发团队努力不懈的尝试,终于逐步克服一些开发上的难题。

此外,TK1默认主频的执行上出现不稳定状态,后来透过修改控制文件,将主频固定在最高的852MHz之后,在性能与稳定性上得到有效改善,这也是经过实际执行过程中获得的宝贵经验。

另外一点经验分享,就是关于“CUDA程序寄存器溢出”的问题。在独立GPU的开发过程 中,如果寄存器使用过量,会溢出到Global Memory中,但程序还是能够正常运行。但是在TK1上,如果寄存器溢出,程序会直接“死掉”。这个问 题最终通过重新设计实现方案解决,如减少每个线程处理的数据量、提高并行粒度等。

然而,与受限于PCIE数据传输限制的独立GPU最明显不同之处,TK1处理器实现 CPU与GPU共享内存特性,大幅度降低数据传输延迟所造成的问题,这对于需要实时处理的应用系统来说,是件非常非常关键的特性,因为独立GPU虽然计算 性能非常强(目前最高能超过 5000GFLOPS),但透过 PCIE 传输数据所造成的延迟,往往掩盖过计算性能所带来的红利,这是 Tegra 处 理器非常适合用在实时计算的另一项特色。

 后续发展

目前距离真正实现智能无人驾驶仍有一段距离,例如国外高级房车以采用两块更高性能 的 Tegra X1 处理器实现无人驾驶功能,配置在车上的摄像头、雷达、传感器数量都远高于现有的配置,表示数据计算量与性能需求也要高出一个量级, 这也是我们十分期待 Jetson TX1 尽快引进国内的主要原因。

此外,对于 Tegra 应用开发方面,极需要供货商与NVIDIA原厂更大的技术指导,包括各类接口(如ISP)以及针对 Tegra 处理器的CUDA优化指导方针,能协助我们更快速开发优异的智能无人驾驶系统。