基于 Rust 的 AV1 视频解码器 rav1d 背后的开发人员正在寻找开发人员,使其运行速度与基于 C 的 dav1d 一样快。
一切始于 2023 年 3 月。计划是什么?构建一个高性能 AV1 解码器,同时兼顾 Rust 带来的所有内存安全优势。他们与 Immunant 合作,承担了工程方面的重任。
时间快进到2024年9月,rav1d 基本完成了——用他们的话说,“基本完成”。它通过了与其所基于的 dav1d 解码器相同的所有测试,甚至可以在 Chromium 中完美运行。但是,有一个小问题:“它的速度不如 C 语言版本快。”
现在,我们讨论的是比基于 C 语言的 dav1d 慢大约 5% 的差距。这听起来可能不算什么,但正如他们所说,这“足以对潜在采用者造成困扰”。而且,这显然让他们有点恼火:“说实话,这真的让我们很困扰。”
别忘了,他们可不是闲着没事干的。rav1d 的核心团队辛勤地进行优化,甚至聘请了一些专业的承包商。他们甚至还写下了优化历程。但最后一点性能对等的目标却始终遥不可及。
“我们仍然无法达到性能平等,坦白地说,我们真的不知道下一步该怎么做,”他们坦诚地承认道。
Rust 与 C 速度之争一直是热门话题。Rust 在很多方面的速度上都能与 C 旗鼓相当。然而,Rust 引以为豪的那些出色的安全特性——比如边界检查——可能会增加一点点开销,尤其是在像视频工作这样要求很高的工作中。
好消息是,优化正在不断缩小这一差距,这表明,只要有足够的智慧和努力,Rust 确实可以与 C 匹敌。因此,这整个赏金就像是对 Rust 社区发出的挑战。
基于 C 语言的FFmpeg背后的人们忍不住发表了一个俏皮的评论:“Rust 太棒了,你可以花 2 万美元让它像 C 语言一样快。”
2万美元赏金池的初衷非常明确:吸引一些新视角和聪明才智来解决这个问题,推动rav1d顺利完成。这不仅仅关乎rav1d;他们渴望“理想情况下,我们和Rust社区也能了解到Rust的性能如何与C语言相比”。
如果你想尝试一下,以下是官方规则的要点:
- 谁可以参加?个人或团队均可参赛,只要您是美国、英国、欧盟、欧洲经济区、瑞士、加拿大、新西兰或澳大利亚的合法居民或公民。
- 如何证明这一点?完整规则阐述了如何对性能提升进行基准测试。
- 需要什么魔法?您可以发挥您的想象力,加速 rav1d 本身、Rust 编译器,甚至是 Rust 标准库。
- 最大的禁忌: dav1d 和 rav1d 共享完全相同的低级汇编代码优化。你绝对“不能修改此汇编代码”。改进必须来自 Rust 代码或编译器。此外,禁止偷偷插入其他语言编写的代码;rav1d 完全由 Rust 编写。
- 使其正式化:将您的改进像任何其他开源贡献一样合并到项目中,然后按照规则向他们发送电子邮件。
当一切都结束时——无论是因为达到了目标还是时间到了——他们都会“根据我们的判断,按比例将奖金分配给对绩效提升贡献最大的人”。
最终,他们掌握着财政大权,并“保留将奖金奖励给那些我们认为以最佳方式帮助我们达到或超过绩效平价的个人或团队的权利。”因此,这不仅关乎最大的收益,也关乎最好的收益。
这不仅仅是一笔现金奖励,更是对Rust社区的号召。他们能否挺身而出,证明 Rust 能够在这些 C 语言长期占据主导地位的高风险、性能关键领域真正竞争?