文档
注册

掩码操作

掩码操作API用于开发者在矢量计算API外部手动配置Normal模式和Counter模式,并设置对应模式下的mask掩码。

什么是Normal模式和Counter模式

Normal模式为默认模式,支持开发者配置迭代次数,通用说明中介绍的配置方式为Normal模式。为了简化开发者操作,提供Counter模式,不需要开发者去感知迭代次数、处理非对齐尾块的操作,可直接传入计算数据量,实际迭代次数由Vector计算单元自动推断。

  • Counter模式使用更方便,不需要计算尾块,但是不具备单次迭代内的mask能力这种高级功能;
  • Normal模式具备单次迭代内的mask能力,但使用不如Counter模式方便,需要开发者感知迭代次数、额外进行尾块的计算。

默认情况下,高维切分计算API内部使用的是Normal模式,tensor前n个数据连续计算API内部使用的是Counter模式。

什么场景需要手动设置Normal模式和Counter模式

既然,高维切分计算API/tensor前n个数据连续计算API内部已经使用了Normal模式/Counter模式,为什么还需要开发者手动配置呢?

  • Counter模式
    • 对于连续计算,如果数据量相同时,可以统一设置为Counter模式,并设置参与计算的数据量,无需在API内部反复设置,省去了在API反复设置的过程,会有一定的性能优势。
    • 使用高维切分计算API配套Counter模式使用时,比tensor前n个数据计算增加了可间隔的计算,支持Block stride、Repeat stride参数。
  • Normal模式

    对于带mask参数(单次迭代内控制参与计算的个数)的非连续计算,如果mask参数相同,可以统一设置为Normal模式,并设置mask参数,无需在API内部反复设置,省去了在API反复设置的过程,会有一定的性能优势。

如何设置Normal模式和Counter模式

  1. 调用SetMaskNorm/SetMaskCount接口设置Normal模式或者Counter模式。
  2. 调用SetVectorMask接口设置mask掩码。
    1. Normal模式下,mask参数用来控制单次迭代内参与计算的元素个数。
    2. Counter模式下,mask参数表示整个矢量计算参与计算的元素个数。
  3. 调用矢量计算高维切分计算API。
    • isSetMask模板参数需要设置为false,表示在矢量计算接口外部设置mask;接口入参中的mask值设置为MASK_PLACEHOLDER,用于占位,无实际含义。
    • Normal模式下根据使用场景正确配置Repeat times、Block stride、Repeat stride参数。
    • Counter模式下,根据使用场景正确配置Block stride、Repeat stride参数。Repeat times传入固定值即可,建议统一设置为1,该值不生效。
  4. 设置为Counter模式的场景需要在矢量计算使用完之后调用SetMaskNorm将mask模式恢复为Normal模式。
  5. 使用ResetMask恢复mask的值为默认值。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词