BUG来了 · 8月13日

Tengine如何指定cpu核心?为什么设置 TENGINE_CPU_LIST=0 或者2 性能没差别?

tengine如何指定cpu核心?为什么设置 TENGINE_CPU_LIST=0 或者2 性能没差别?

1 个回答 得票排序 · 时间排序
Simon Cai · 8月13日

tengine通过环境变量TENGINE_CPU_LIST 来设置cpu核心。 如果用的是RK3399, cpu的编号是: 0,1,2,3 为A53, 4,5 为A72, 这个信息可以通过命令cat /proc/cpuinfo查看。 因此,设置TENGINE_CPU_LIST, 无论设置0,2 都是单A53, 性能无差别。

设置方法:

在命令窗口直接设置
export TENGINE_CPU_LIST=4,5 //两个A72
在代码中调用setenv设置
int setenv(const char envname, const char envval, int overwrite);
setenv最后一个参数overwrite 设置为0,表示如果环境变量已有设置,则不更新; 最后一个参数非0, 参数更新
如:setenv("TENGINE_CPU_LIST", "4,5", 1);
在代码中调用set_cpu_list函数设置
void set_cpu_list(const char* cpu_list_str);
函数接收cpu序号的列表,用逗号作为分隔符,注意:set_cpu_list函数必须在init_tengine之前调用才能生效。
如:set_cpu_list("4,5");

Tengine白皮书

你的回答