文章目录
-
- 1. 目的
- 2. 设计
- 3. 生成器: Python 代码
- 4. 结果: C++ 代码
1. 目的
背景: cpuinfo 库提供了 CPU 信息的查询, 涵盖了 x86 和 arm 等常见的指令集架构, 可以提供自行实现的 CPU 基础功能函数的正确性验证。自行实现 CPU 基础功能则是为了简化功能、同时提供原汁原味的实现、而不是照抄开源代码, 原汁原味指的是有自己的思考过程。
cpuinfo 库是 pytorch 官方维护的一个基于 C 语言实现的库。什么意思呢?它的接口是 C 风格的, 实现也是 C 风格的,好处是比较容易看懂代码, 坏处是比较啰嗦,尤其是每次调用的最开始、结束都要手动初始化和反初始化:
cpuinfo_initialize()
cpuinfo_deinitialize()
一旦忘记初始化或反初始化就容易得到报错。为了方便使用, 不妨用 C++ 封装 cpuinfo.h 里面的 API 函数的实现,提供一个class CpuInfo
, 在它的构造函数和析