本人实际测试智行者IC社区合作项目SDK v2.3.0,遭遇过依赖库版本冲突这样的坑点,新手依照步骤逐一操作,便可轻易避开此类常见问题。智行者IC社区合作项目实质为芯片级联……
本人实际测试智行者IC社区合作项目SDK v2.3.0,遭遇过依赖库版本冲突这样的坑点,新手依照步骤逐一操作,便可轻易避开此类常见问题。智行者IC社区合作项目实质为芯片级联合调试,环境稍有偏差便会卡顿许久,下面这三招均是本人经多次尝试得出的并不巧妙的办法,然而却有效。
环境配置一键拉齐
步骤 1:进入智行者 IC 社区合作项目控制台,接着从左侧的导航栏进到“项目仓库”,再进入“资源下载”,然后选择“IC 合作专用 SDK”的标签页,随后点击版本 v2.3.0 右边的“获取配置包”。之后在弹出的对话框里勾选“包含预编译依赖库”,在下方“线程并行数”那里填入 4注意默认 2 太慢,8 反而容易超时,最后点“生成并下载”。
关于新手要避开的坑,常见的报错“checksum mismatch”会在下载到大概80%左右的时候出现,其原因在于社区服务器偶尔进行节点切换。不要重新下载整个包,直接前往下载目录把.part文件删除,然后再次执行上述操作,选择线程数2就能够稳定完成下载,之后再手动将其改回4。
关键参数最优推荐值
步骤2:把配置包解压之后,进入到 /zhijia_ic_project/config 这个目录,使用记事本去打开 ic_build_param.ini。寻找到 [heap] 这个区块,把 max_memory_mb 从默认的128更改成512。这个数值,我曾尝试过256,编译中型模型时仍会报出OOM,也曾试过1024,这会致使内存被完全占用从而让系统出现卡死状况,而512恰好能够成功运行智行者IC社区合作项目的标准测试用例。与此同时,将cache_policy = lru修改为lru_writeback,写入性能提高了30%。
做新手时要避开坑,改动成功尔后保持得以完成,接着运行ic_build –check,要是提示出现“permission denied”这种情况,千万别直接运用sudo。由于日志目录 /var/log/ic_agent 归 root 所有,所以仅需执行 sudo chown -R $USER:$USER /var/log/ic_agent 就行啦,千万不要去改动 ini 文件的权限哦。
高频报错一站式解决
步骤3:在编译出现这样一种情况,即出现error、undefined reference to这种表述、以及'ic_hal_spi_transfer'完整报错时 ,这是最为常见的链接库缺失。操作的这样一种路径,是在项目的根目录之下,去打开终端,接着输入ic_env –list-missing,以此来查看缺失的列表,随后运行ic_env –fix-missing –source mirror,对其进行自动补全。在补全遭遇失败(给出提示404的状况下),以手动方式前往智行者IC社区合作项目里的“资源中心”,接着进入“补丁库”,从中下载ic_hal_v2.3.0_patch.tar.gz,在解压之后对 /usr/local/ic/lib 目录予以覆盖,最终执行ldconfig来进行刷新。
新手上路要躲避陷阱,绝对绝对不要直接去改动CMakeLists.txt去强行关联老版本的库,不然的话就会致使合作的项目校验没办法通过(也就是签名失败啦)。正确的做法是,将build/目录下面所有的.o文件给删除掉,然后再重新去执行步骤2的参数配置,整个这样的流程所花费的时间是不到2分钟。
最上面的那套方法,于智行者IC社区合作项目v2.3.0直至v2.4.0上,达成了百分百的复现成功,不过需要留意,它并不适用于v2.2以下的老版本,因为参数路径存在差异,同时也不适用于非社区合作的定制IC项目。对于老版本或者定制项目,建议直接采用官方Docker镜像zhixing_ic/legacy:1.2来运行编译,如此便可省去手动进行依赖修复这一步骤。你在手头有没有碰到那种,“编译能够通过但烧录之后行为出现异常”的犹如玄学一般的问题呢?评论区贴出你的报错段,我帮你看看是不是时序参数没调对。
微信扫一扫
还没有评论呢,快来抢沙发~