ZHCUBL2K January   2018  – March 2024

 

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

示例程序

以下是一个示例程序,可以交替使用主机仿真和 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