尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CANN/ge:开启AI CPU Cast算子自动插入特性

CANN/ge:开启AI CPU Cast算子自动插入特性 开启AI CPU Cast算子自动插入特性【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge简介模型编译时若遇到AI CPU算子不支持某种数据类型导致编译失败的场景可通过启用Cast算子自动插入特性快速将输入转换为算子支持的数据类型从而实现网络的快速打通。如图1表示MatrixInverse算子的输入x不支持float16的数据类型。图 1报错示例 ![](https://raw.gitcode.com/cann/ge/raw/243ea8d2d8f7623dd210c0867dde5782ec5594a9/docs/zh/user_guides/atc_tools/figures/error_example.png 报错示例?utm_sourcegitcode_repo_files)此种场景下即可开启Cast算子自动插入特性详细操作方法见操作步骤。操作步骤打开AutoCast开关。修改“${INSTALL_DIR}/lib64/plugin/opskernel/config/init.conf”文件将“AutoCastMode”参数的值修改为1如下所示... AutoCastMode 1修改对应的算子信息库内置AI CPU算子信息库存储在opp安装目录下的“built-in/op_impl/aicpu/aicpu_kernel/config”目录下在需要修改的算子中插入Cast转换规则。如下所示MatrixInverse算子的输入x不支持float16算子信息库配置如下MatrixInverse:{ input0:{ name:x, type:DT_FLOAT,DT_DOUBLE,DT_COMPLEX128,DT_COMPLEX64 }, opInfo:{ computeCost:100, engine:DNN_VM_AICPU, flagAsync:False, flagPartial:False, formatAgnostic:False, opKernelLib:TFKernel, opsFlag:OPS_FLAG_OPEN, subTypeOfInferShape:1 }, output0:{ name:y, type:DT_FLOAT,DT_DOUBLE,DT_COMPLEX128,DT_COMPLEX64 } },为了让其支持float16需要做如下修改对输入信息进行修改增加支持的数据类型并增加数据类型转换规则。例如对MatrixInverse算子输入增加对float16类型的支持并增加Cast规则将float16转换为float32代表在此输入前会插入一个float16到float32的Cast算子。input0:{ name:x, type:DT_FLOAT,DT_DOUBLE,DT_COMPLEX128,DT_COMPLEX64,DT_FLOAT16, srcAutoCastType:DT_FLOAT16, dstAutoCastType:DT_FLOAT },支持的“type”中增加“DT_FLOAT16”数据类型支持的数据类型可参见对应的算子信息库中Cast算子的定义。增加配置“srcAutoCastType”代表输入数据的类型。增加配置“dstAutoCastType” 代表需要转换成的目标数据类型。对输出信息进行修改增加支持的数据类型并增加数据类型转换规则。例如对MatrixInverse算子输出增加对float16类型的支持并增加Cast规则将float32转换为float16代表在此输出后插入一个float32到float16的Cast算子。output0:{ name:y, type:DT_FLOAT,DT_DOUBLE,DT_COMPLEX128,DT_COMPLEX64,DT_FLOAT16, srcAutoCastType:DT_FLOAT, dstAutoCastType:DT_FLOAT16 }支持的“type”中增加“DT_FLOAT16”数据类型支持的数据类型可参见对应的算子信息库中Cast算子的定义。增加配置“srcAutoCastType”代表输入数据的类型。增加配置“dstAutoCastType” 代表需要转换成的目标数据类型。[!NOTE]说明若算子的多个输入、多个输出要求具有相同的数据类型则每个输入、输出都需要按照上述规则进行修改。由于插入Cast算子精度会有一定程度的损失具体损失大小与转换的数据类型有关。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表