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 主机仿真为访问器提供以下支持:

  • 支持单一元素访问器,如 .s0()。
  • 支持半向量访问器,如 .lo() 和 .even()。
  • 支持复杂访问器,如 .r()。
  • 支持下标访问器,如 .s[0]。
  • 多元素重排访问器(例如 .s0312())不受支持。这是因为重排访问器的组合太多,并且不可能为所有这些组合都提供定义。权变措施涉及使用以下某个习语。
    int2 my_new_vec = int2(my_int8_vec.x(), my_int8_vec.z()); // instead of my_vec.xz()
    
    /* Swizzle accessor example workaround in Host Emulation code */
    int16 ex = int16(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
    
    // Desired, but illegal when using Host Emulation:
    // int8 swizzle = ex.s048c159d()
    // Potential workaround:
    int8 swizzle = int8(ex.even().even(), ex.odd().even());