下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

掩码操作

掩码操作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个数据计算增加了可间隔的计算,支持dataBlockStride、repeatStride参数。
  • Normal模式

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

如何手动设置Normal模式

Normal模式的设置和使用流程如下:

  1. 调用SetMaskNorm接口设置Normal模式。
  2. 调用SetVectorMask接口设置mask掩码。Normal模式下,mask参数用来控制单次迭代内参与计算的元素个数。
  3. 调用tensor高维切分计算API。
    • isSetMask模板参数需要设置为false,表示在矢量计算接口外部设置mask;接口入参中的mask值设置为MASK_PLACEHOLDER,用于占位,无实际含义。
    • Normal模式下根据使用场景正确配置repeatTimes、dataBlockStriderepeatStride参数。
  4. 使用ResetMask恢复mask的值为默认值。

如何手动设置Counter模式

  1. 调用SetMaskCount接口设置Counter模式。
  2. 调用SetVectorMask接口设置mask掩码。Counter模式下,mask参数表示整个矢量计算参与计算的元素个数。
  3. 调用矢量计算API
    • 针对tensor高维切分计算API。
      • isSetMask模板参数需要设置为false,表示在矢量计算接口外部设置mask;接口入参中的mask值设置为MASK_PLACEHOLDER,用于占位,无实际含义。
      • 根据使用场景正确配置dataBlockStriderepeatStride参数。repeatTimes传入固定值即可,建议统一设置为1,该值不生效。
    • 针对tensor前n个数据计算API(当前仅部分API支持isSetMask模板参数)。isSetMask模板参数需要设置为false,表示在矢量计算接口外部设置mask;接口入参中的calCount不生效,建议设置成1。
  4. 设置为Counter模式的场景需要在矢量计算使用完之后调用SetMaskNorm将mask模式恢复为Normal模式。
  5. 使用ResetMask恢复mask的值为默认值。
搜索结果
找到“0”个结果

当前产品无相关内容

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