据Slashdot 9月17日报道,Adafruit发布CircuitPython Turbo,这一工作流可先在电脑上将选定的Python函数编译为原生机器码,再加载到兼容的微控制器板上;在Metro RP2040定点Mandelbrot测试中,基于Viper的计算时间从8.335秒降至0.423秒,较字节码提速19.71倍。该功能让Python处理的计算密集部分更快,同时应用其余部分仍用Python运行。
Adafruit于2017年推出CircuitPython,它衍生自面向微控制器优化的MicroPython,目标用户是学生和初学者。此次Turbo建立在MicroPython的Native和Viper emitter之上。Adafruit管理董事Phillip Torrone在Adafruit.com的公告中称,Turbo支持已包含在RP2040和RP2350板的最新官方CircuitPython构建中。Torrone也是Slashdot的长期读者ptorrone。
公告称,Turbo适用于开发板花费大量时间计算的场景,例如制作NeoPixel效果、绘制分形、处理音频、过滤传感器读数或准备大量像素。这些项目可以获得更平滑的动画、更快的响应,或有余力同时做更多事情。Torrone举例说,借助Turbo,制作能同时响应声音的LED发光服装、带动态图形的传感器仪表板,或在绘制屏幕的同时进行物理计算的小型游戏,会更容易、更好,现在也更快。
需要说明的是,Turbo加速的是应用中繁忙的Python代码部分,不会让慢速的传感器或显示屏连接变快。Adafruit的指南包含基准测试、源代码和硬件演示。公告表示,电脑会把选定函数转换成芯片可直接运行的指令,Python仍负责其余部分;官方还提供了实测加速数据、真实显示捕获和可供拆解学习的示例。公告同时强调,加速数据针对的是所测量的计算,而非整个应用。
公告还提到,CircuitPython、MicroPython、PyMCU、编译器工具、开源硬件以及分享成果的人共同提供了拼接这些能力的部件。Bao实验则把计算交给四个辅助核心,走向另一个方向。Adafruit表示,接下来要让这些路径更易使用、便于比较结果,并寻找下一个有用的东西,可能是更平滑的动画、响应更快的乐器,或尚未尝试的想法。