ZHCUBL2L January   2018  – March 2025

 

  1.   1
  2.   C7000 主机仿真
  3. 1 关于本文档
    1. 1.1 相关文档
    2. 1.2 免责声明
    3. 1.3 商标
  4. 2 主机仿真入门
    1. 2.1 系统要求
    2. 2.2 安装说明
    3. 2.3 主机仿真库版本
    4. 2.4 差异总结:主机仿真编码与原生 C7000 编码
  5. 3 一般编码要求
    1. 3.1 所需的头文件
    2. 3.2 包依赖项
    3. 3.3 示例程序
  6. 4 内在函数
    1. 4.1 类似 OpenCL 的内在函数
    2. 4.2 流地址生成器内在函数
    3. 4.3 C6000 传统内在函数
    4. 4.4 存储器系统内在函数
  7. 5 TI 向量类型
    1. 5.1 构造函数
    2. 5.2 访问器
    3. 5.3 向量运算符
    4. 5.4 打印调试函数
  8. 6 流引擎和流地址生成器
  9. 7 查询表和直方图接口
    1. 7.1 查询表和直方图数据
  10. 8 C6000 迁移
    1. 8.1 __float2_t 传统数据类型
  11. 9 矩阵乘法加速器 (MMA) 接口
  12. 10编译器错误和警告
    1. 10.1 编译器错误和警告中包含的关键术语
    2. 10.2 主机仿真特定语法
  13. 11修订历史记录
  14.   36

示例程序

以下是一个示例程序,可以交替使用主机仿真和 C7000 编译器进行编译,无需修改源代码。每种情况下都提供了示例编译器命令。

C7000 编译器 (cl7x) 命令行选项与主机仿真编译器不兼容。

/* Example Program test.cpp */
#include "c7x.h"
extern void test(int8 v);
int main()
{
    int8 vec1 = int8(1,2,3,4,5,6,7,8);
    int8 vec2 = (int8)5;
    test(vec1 + vec2);
}

C7100 主机仿真编译器命令 (Linux):

g++ -c --std=c++14 -fno-strict-aliasing -I<cgt_install_path>/host_emulation/include/C7100 
test.cpp -L<cgt_install_path>/host_emulation -lC7100-host-emulation

使用主机仿真时,-fno-strict-aliasing 命令行选项应始终与 g++ 一起使用。此选项可确保 g++ 编译器不会使用类型差异来做出别名决策。主机仿真实施方案使用不同类型来实现 TI 向量类型。因此,如果不使用此选项,g++ 可能会利用主机仿真功能错误地优化 TI 向量代码,这可能会导致意外的错误结果。

C7000 编译器命令:

cl7x test.cpp