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

  • 支持单一元素访问器,如 .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());