今天跟大家聊聊我最近折腾的 cambrian,这玩意儿一开始我听都没听过,纯粹是因为工作需要,被逼着去了解的。
事情是这样的,我们公司最近想搞点 AI 相关的项目,然后上面就丢下来一个任务,说是要调研一下国内的 AI 芯片厂商。一开始我是一脸懵逼,啥是 AI 芯片?这玩意儿跟我之前搞的嵌入式开发有啥关系?
没办法,硬着头皮开始啃资料。先是在网上搜了一大堆关于 AI 芯片的介绍,什么 GPU、FPGA、ASIC,看得我头昏脑胀。然后又开始找国内的 AI 芯片厂商,这才发现了 cambrian 寒武纪这家公司。
刚开始我就是看官网,看他们发布的产品,什么思元 290、思元 370,还有那个什么 cambrian 1M,感觉都挺厉害的样子。但是光看这些官方介绍肯定不行,得找点更实际的东西看看。
第二步:找 Demo 和 SDK我就开始在网上搜 cambrian 的开发资料,看看有没有什么 Demo 可以跑一下。结果发现这玩意儿的资料是真的少,可能是因为面向的客户主要是企业级用户,个人开发者能接触到的东西不多。
好不容易找到了一些 cambrian 的 SDK 和一些简单的示例代码,但是跑起来问题一大堆,各种依赖关系搞不清楚,编译都通不过
第三步:搭建环境为了解决这些问题,我只能一步一步地搭建开发环境。先是安装 cambrian 提供的驱动和工具链,然后配置环境变量,再解决各种依赖问题。这期间真的是踩了不少坑,各种报错信息看得我头皮发麻。
第四步:跑通 Demo经过几天的折腾,总算是把环境搭建好了,然后跑通了一个简单的图像识别 Demo。虽然只是一个很简单的 Demo,但是能跑起来就说明环境没问题了,也算是迈出了第一步。
第五步:研究 cambrian 1M跑通 Demo 之后,我就开始研究 cambrian 1M 这个东西。这是寒武纪的第三代终端 IP 产品,主要面向边缘计算场景。我就找了一些相关的文档和资料,了解它的架构和特性。
这玩意儿的核心就是它的 MLU(Machine Learning Unit),专门用来加速机器学习算法的。我就试着用 cambrian 1M 来跑一些简单的模型,看看它的性能如何。
为了更直观地了解 cambrian 1M 的性能,我做了一些简单的性能测试。我用它来跑了一些常见的图像识别模型,比如 ResNet、MobileNet 等等。
测试结果表明,cambrian 1M 在这些模型上的性能还是不错的,比 CPU 快很多,但是跟 GPU 相比还是有差距。
这回折腾 cambrian 的经历还是挺有收获的。虽然一开始很困难,但是通过一步一步地摸索,最终还是把环境搭建好了,也跑通了一些 Demo。
通过这回实践,我对 AI 芯片和边缘计算有了更深入的了解。也体会到了国内 AI 芯片厂商的实力。虽然还有很多不足,但是相信未来会越来越
这只是一个很简单的实践记录,还有很多东西需要深入研究。比如 cambrian 的编译器优化、模型部署等等。以后有机会再跟大家分享。
还没有评论,来说两句吧...