ViewEngine【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit产品支持情况Ascend 950PR/Ascend 950DT支持Atlas A3 训练系列产品/Atlas A3 推理系列产品不支持Atlas A2 训练系列产品/Atlas A2 推理系列产品不支持Atlas 200I/500 A2 推理产品不支持Atlas 推理系列产品AI Core不支持Atlas 推理系列产品Vector Core不支持Atlas 训练系列产品不支持功能说明ViewEngine是Tensor API中的视图引擎负责持有一个指针对象Iterator通过Begin()返回这段视图的起始位置。在LocalTensor中ViewEngine和Layout一起组成一个Tensor的视图。LocalTensorTensorAttributeViewEngineIterator, LayoutType函数原型ViewEngine定义如下template typename Iterator struct ViewEngine { using iterator Iterator; using reference typename IterRefiterator::type; using elementType typename IterEleiterator::type; using valueType typename IterValiterator::type; __aicore__ inline constexpr iterator const Begin() const; __aicore__ inline constexpr iterator Begin(); __aicore__ inline constexpr ViewEngine(iterator storage {}); };成员函数说明ViewEngine()功能说明根据给定的指针/迭代器对象构造ViewEngine对象。函数原型__aicore__ inline constexpr ViewEngine(iterator storage {});参数说明storage视图起始位置对应的指针/迭代器对象。返回值说明构造函数无返回值。Begin()功能说明获取构造ViewEngine对象时的起始位置指针/迭代器。函数原型__aicore__ inline constexpr iterator const Begin() const; __aicore__ inline constexpr iterator Begin();返回值说明返回构造时保存的storage即当前视图的起始指针/迭代器。约束说明传入的iterator对象必须是有效的随机访问迭代器以确保能够正确访问和操作数据。调用示例using namespace AscendC::Te; constexpr int32_t size 256; __ubuf__ float data[size]; auto ptr MakeMemPtr(data); auto layout MakeLayout(MakeShape(2, 2), MakeStride(2, 1)); auto tensor MakeTensor(ptr, layout); auto engine tensor.Engine(); auto begin engine.Begin(); float a begin[0]; float b tensor[MakeCoord(1, 1)];【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考