云服务器内容精选
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --api params包括以下项: device_info: 与Host连接的Device的列表 device_status: 仅支持查询开发者板的摄像头状态(0表示摄像头不存在,1摄像头存在),如返回100,则其中1表示3559芯片,后两个0表示两个摄像头不存在。 board_id: 仅支持查询开发者板的ID。 sys_version: 仅支持查询开发者板的产品版本。 是 -
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --device 如果Host连接了多个Device,则可以通过--device deviceID指定具体的Device。如果不指定Device,则默认指定deviceID为0的Device。 否 deviceID默认值为0。 --file source_dir:指定存放源文件的路径,包含文件名。执行IDE-daemon-client命令的用户必须对该文件路径有读写权限。 dest_dir:指定Device侧用于存放目的文件的路径,包含文件名。必须指定存放文件的路径,否则命令会执行失败。此处文件存放的路径只能是“/home/HwHiAiUser/hdcd”下的目录,在命令中只需指定相对路径,例如目的文件的路径为“/home/HwHiAiUser/hdcd/ide_daemon/B.java”,在命令中只需将file参数指定为“ide_daemon/B.java”。 是 -
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --hostcmd 指定需要Host侧执行的命令,命令列表请参见command列表。 除date命令外,其它command命令必须放在单引号或双引号中。如果command命令中已有双引号,则将command命令放在单引号中;如果command命令中已有单引号,则将command命令放在双引号中。 是 -
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --get source_dir:指定Host侧源文件的路径,包含文件名。此处文件存放的路径只能是以下路径: ~/ide_daemon ~/HIAI_PROJE CTS ~/HIAI_DATANDMODELSET /opt/mini /var/log/hisi_logs /var/dlog dest_dir:指定存放目的文件的路径,包含文件名。执行IDE-daemon-client命令的用户必须对该文件路径有读写权限。 是 -
-
简介 执行IDE-daemon-client命令后,将指定的命令发送Host侧,如果命令需要在Host侧执行,则直接执行;如果命令需要在Device侧执行,则再由Host侧连接Device,然后在Device侧执行命令,具体请参见《IDE-daemon-client命令参考》。 图1 IDE-daemon总体结构 目前IDE-daemon-client命令支持在Host侧服务器(PCIe形态)上执行,也可以在DDK所在的服务器上执行: 如果在Host侧服务器上,您可以HwHiAiUser用户登录Host侧服务器,直接执行IDE-daemon-client命令。下文以此为例。 如果安装了DDK,可以在DDK服务器上执行IDE-daemon-client命令。 DDK部署在单独的服务器上,不与Host侧服务器共用,您可以DDK安装用户登录服务器,先执行如下命令设置环境变量,再执行IDE-daemon-client命令。其中,“DDK安装目录”需根据实际情况替换。 export LD_LIBRARY_PATH=DDK安装目录/ddk/uihost/libexport PATH=$PATH:DDK安装目录/ddk/uihost/bin DDK部署在Host侧服务器上且DDK安装用户为HwHiAiUser,您可以HwHiAiUser用户登录服务器,直接执行IDE-daemon-client命令,不用设置环境变量。 如果您直接复制下文中的命令,由于PDF文档格式的限制,超过单行的命令,会自动换行,因此您需要手动将多行命令合并成一行,参数之间以空格分割。
-
使用示例 以Mind Studio安装用户登录Mind Studio服务器。 执行如下命令设置环境变量。 export LD_LIBRARY_PATH=~/tools/che/ddk/ddk/uihost/libexport PATH=$PATH:~/tools/che/ddk/ddk/uihost/bin 执行IDE-daemon-client命令。 此处是示例命令,需要根据实际情况修改。 --host参数后的“xx.xx.xx.xx”需要替换为实际的Host服务器的IP地址。 /home/ascend表示Mind Studio安装用户家目录,需要根据实际情况替换。 app_dir后的“/xxx/xxx”需替换为Host侧app所在路径,例如:“/home/HwHiAiUser/HIAI_PROJECTS/workspace_mind_studio/testProject/out”。 app需要替换为app_dir指定目录下的应用程序名,例如:workspace_mind_studio_testProject。 result_dir后的路径需替换为Host服务器上已存在的路径。执行命令后,您可以在result_dir指定的目录下查看采集结果。 IDE-daemon-client --host xx.xx.xx.xx:22118 --profile "{\"ddk_dir\": \"/home/ascend/tools/che/ddk/ddk\",\"app\": \"workspace_mind_studio_testProject\",\"app_dir\": \"/home/HwHiAiUser/HIAI_PROJECTS/workspace_mind_studio/testProject/out\", \"umode\": \"MIND\",\"result_dir\": \"/home/ascend/tools/projects/test_ycm\",\"peripheral_profiling\": \"\",\"ts_cpu_profiling\": \"off\",\"ai_cpu_profiling\": \"off\",\"rts_profiling\": \"on\",\"ai_core_profiling_mode\": \"\",\"ai_core_profiling\": \"off\",\"hiai_engine_profiling\": \"off\",\"framework_profiling\": \"off\",\"ctrl_cpu_profiling\": \"off\",\"profiling_mode\": \"online\",\"llc_profiling\": \"off\",\"ddr_profiling\": \"on\",\"deviceid\": \"0\", \"ddr_profiling_events\": \"read,write\", \"hiai_engine_profiling\": \"on\", \"analysis_target\": \"Launch Application\"}" 关于各采集项的含义请参见《Ascend 310 Mind Studio开发辅助工具》中的“Profiling”章节。
-
前提条件 已安装Mind Studio,且已提前将Mind Studio侧编译后的工程的相关文件复制到Host侧的对应目录下。 例如,Mind Studio侧的工程名是testProject,工程编译后的文件在“Mind Studio安装用户家目录/tools/projects/testProject/out”目录下,则需要将“Mind Studio安装用户家目录/tools/projects/testProject/out”目录下的文件上传到Host侧的“/home/HwHiAiUser/HIAI_PROJECTS/workspace_mind_studio/testProject/out”目录下,将可执行文件名称修改为workspace_mind_studio_工程名称(例如:workspace_mind_studio_testProject),同时,还需要执行chmod +x workspace_mind_studio_testProject命令给可执行文件加执行权限。
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --device 如果Host连接了多个Device,则可以通过--device deviceID指定具体的Device。如果不指定Device,则默认指定deviceID为0的Device。 否 deviceID默认值为0。 --cmd 指定需要Device侧执行的命令,命令列表请参见command列表。 除date命令外,其它command命令必须放在单引号或双引号中。如果command命令中已有双引号,则将command命令放在单引号中;如果command命令中已有单引号,则将command命令放在双引号中。 是 -
-
使用示例 以HwHiAiUser用户登录Host侧服务器。 执行命令,设置Host侧和Device侧的日志级别。 IDE-daemon-client --host xx.xx.xx.xx:22118 --log 'SetLogLevel(0)[error]'IDE-daemon-client --host xx.xx.xx.xx:22118 --log 'SetLogLevel(1)[S LOG :error]'IDE-daemon-client --host xx.xx.xx.xx:22118 --log 'SetLogLevel(2)[enable]' xx.xx.xx.xx需要替换为实际的Host的IP地址。 moduleName通过枚举形式定义,包括如下值: enum { DLOG = 0, // Dlog SLOG, // Slog IDEDD, // IDE daemon device IDEDH, // IDE daemon host LOGAGTH, // log agent host HCCL, // HCCL FMK, // Framework HIAIENGINE, // Matrix DVPP, // DVPP RUNTIME, // Runtime CCE, // CCE #if (OS_TYPE == LINUX) HDC, // HDC #else HDCL, // HDCL windows has a def with the same name HDC, so change HDC to HDCL #endif DRV, // Driver MDCCONTROL, // Mdc control MDCFUSION, // Mdc fusion MDCLOCATION, // Mdc location MDCPERCEPTION, // Mdc perception MDCMOP, MDCFSM, MDCCOMMON, MDCMONITOR, MDCBSWP, // MDC basesoftware platform MDCDEFAULT, // MDC UNDEFINE MD CS C, // MDC spatial cognition MDCBP, MDCTF, MLL, DEVMM, // Dlog memory managent KERNEL, // Kernel MDCSMCMD, // sm_control_cmd MDCSCREEN, // parking_spot_screen LIBMEDIA, // Libmedia CCECPU, // ai cpu ASCENDDK, // AscendDK ROS, // ROS HCCP, RoCE, TEFUSION, PROFILING, // Profiling DP, // Data Preprocess APP, // User Application call HIAI_ENGINE_LOG INVLID_MOUDLE_ID };
-
参数说明 表1 参数说明 参数名称 参数描述 是否必选 默认值 --host host_ip:指定Host侧的IP地址。 port:指定端口号。 是 port默认值为22118。 --device 如果Host连接了多个Device,则可以通过--device deviceID指定具体的Device。如果不指定Device,则默认指定deviceID为0的Device。 否 deviceID默认值为0。 --log params包括以下项: SetLogLevel 设置全局日志级别,0表示全局级日志级别,1表示模块级日志级别,2表示event日志级别(在设置event日志级别时,“enable”表示开启event日志级别,“disable”表示不开启event日志级别)。 SetLogLevel[moduleName:level] 设置指定模块日志级别 level:error, info, warning, debug, null(表示不打印日志) moduleName: 模块名称 是 -
-
算子调度与编译 如下代码所示,当定义完计算逻辑后,使用auto_schedule机制,便可以自动生成相应的调度,此处通过TVM的打印机制可以看到相应计算的中间表示。配置信息包括是否需要打印、编译以及算子内核名以及输入、输出张量。 sch = generic.auto_schedule(res)config = { "print_ir": need_print, "need_build": need_build, "name": kernel_name, "tensor_list": [data, res]}te.lang.cce.cce_build_code(sch, config) 使用“generic”的“auto_schedule”接口,自动生成相应的调度(schedule),“auto_schedule”接口的参数为算子的输出张量。 schedule可以理解为:描述的计算过程如何在硬件上高效执行。就是把相关的计算和硬件设备上的相关指令对应起来。schedule对象中包含一个“中间表示”(IR),它用一种类似伪代码来描述计算过程,可以通过“need_print”参数把它打印出来进行查看。 “tensor_list”(张量列表)中保存输入张量、输出张量,这个顺序需要严格按照算子本身的输入、输出数据顺序排列。 例如:"tensor_list": [tensor_a, tensor_b, res],tensor_a与tensor_b是输入张量,res为输出张量。 根据调度和配置使用“te.lang.cce”提供的“cce_build_code”接口来进行算子编译,算子编译过程会根据输入的数据形状、类别、算子参数等编译出专用内核,这个过程在离线模型生成器转换模型时发生。 sch:生成的算子计算schedule对象。 config:编译参数配置的map。 编译完成后,会生成算子目标文件.o文件(运行目标为AI Core的算子)或者.so文件(运行目标为AI CPU的算子)与算子描述文件.json文件。 父主题: 算子代码实现
-
构造输入数据文件 运行单算子需要构造算子输入数据,并以二进制格式保存到算子工程下。 以DDK安装用户进入自定义算子工程的算子代码目录下。 cd $HOME/tools/projects/customop_te/operator/ 执行样例数据生成脚本,生成reduction算子的样例数据文件。 python data_gen.py reduction 在算子工程中会生成如图1所示数据文件。 图1 样例数据生成 数据文件说明如表1所示。 表1 数据文件说明 数据文件 说明 Reduction_input_2_3_4_sum_axis_1.data reduction算子的二进制格式输入数据文件。 Reduction_input_2_3_4_sum_axis_1.txt 将reduction算子的二进制格式文件以txt文件的方式显示出来,方便用户查看结果。 Reduction_output_2_3_4_sum_axis_1.data reduction算子二进制格式输出数据验证文件,用于验证算子运行后的输出结果是否正确。 Reduction_output_2_3_4_sum_axis_1.txt 将reduction算子的二进制格式输出数据文件以txt文件的方式显示出来,方便用户查看结果。 父主题: 算子运行验证
-
算子注册 框架管理器(Framework)提供REGISTER_CUSTOM_OP宏,按照指定的算子名称完成算子的注册。 自定义算子的注册代码如下所示: REGISTER_CUSTOM_OP("test_layer") .FrameworkType(CAFFE) .OriginOpType("Test") .ParseParamsFn(ParseParamsxx) .InferShapeAndTypeFn(InferShapeAndTypexx) .TEBinBuildFn(BuildTeBinxx) .ImplyType(ImplyType::TVM) .Formats({DOMI_TENSOR_NC1HWC0}, {DOMI_TENSOR_NC1HWC0}) .WeightFormats({DOMI_TENSOR_FRACTAL_Z, DOMI_TENSOR_NC1HWC0}); 其中: REGISTER_CUSTOM_OP:注册自定义算子,"test_layer"作为离线模型文件中的算子名称,可以任意命名但不能和已有的算子命名冲突。 FrameworkType:不同框架的算子参数解析逻辑不同,因此对于不同框架模型需要有不同的插件,在插件的注册代码需要表明对应的框架。当前请配置为CAFFE。 OriginOpType:算子类型,需要与Caffe Prototxt中定义的算子类型保持一致,否则无法正常解析,内置的caffe.proto文件路径为DDK安装路径下的“/include/inc/custom/proto/caffe/caffe.proto”。 ParseParamsFn:用来注册解析模型的函数,“ParseParamsxx”即解析算子中实现的函数,针对Caffe框架开发插件时需要,若自定义的算子为重写昇腾AI处理器已经支持的算子,则此步骤可跳过;若自定义的算子为昇腾AI处理器不支持的算子,则此步骤必选。 InferShapeAndTypeFn:用来注册形状和类别推断函数,“InferShapeAndTypexx”即推理算子输出张量描述中实现的函数。 TEBinBuildFn:用来注册TE算子编译函数,“BuildTeBinxx”即编译算子中实现的函数。 ImplyType:指定算子的实现方式,ImplyType::TVM表示该算子是TE算子。 Formats:算子输入数据与输出数据的数据排布格式,其中第一个列表是输入数据格式列表,第二个列表为输出数据格式列表,若输入数据有多个,请在第一个列表中列出每一个输入数据的排布格式。例如若有两个输入数据,分别是NC1HWC0格式,则Formats函数调用方式如下: .Formats({DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0}, {DOMI_TENSOR_NC1HWC0}) 详细说明请参见《Framework API参考》中的“Formats函数”。 WeightFormats:设置算子的权重数据的排布格式,支持的数据格式类型请参见《Framework API参考》中的“WeightFormats函数”。例如Convolution的filter的数据排布格式是fractal_Z,bias的数据排布格式是NC1HWC0。 如果模型转换时开启量化开关,需要在此接口中增加Framework处理时新增的常量数据的格式,当前Framework支持的量化算子有Conv,FC与Depthwise Conv,若这几个算子在模型转换时开启了量化开关,则需要在WeightFormats接口的参数列表最后增加6个DOMI_TENSOR_NC1HWC0的数据格式(量化时Framework新增了6个数据排布格式为NC1HWC0的常量,此处不详细介绍),开启量化后的Convolution的WeightFormats接口示例如下: .WeightFormats({DOMI_TENSOR_FRACTAL_Z, DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0,DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0, DOMI_TENSOR_NC1HWC0}) 父主题: 插件代码实现
-
函数声明 算子编译函数的声明如下所示: Status BuildTeBinxx(const ge::Operator& op, TEBinInfo& te_bin_info) 其中: BuildTeBinxx:函数名称,用户自定义,需要保持唯一。 op:目标算子模型,适配昇腾AI处理器的离线模型的算子数据结构,保存算子信息,Operator类的详细描述请参见《GE API参考》中的“Operator类接口”。 te_bin_info:存储自定义算子二进制文件路径、算子描述文件路径以及DDK的版本信息。TEBinInfo结构体的详细描述请参见《Framework API参考》中的“TEBinBuildFn函数”。
-
输出张量与输入张量形状相同的算子 对于输出张量与输入张量形状相同的算子,可以直接将输入张量的描述插入输出张量描述所在的向量空间中。 代码示例如下所示: v_output_desc.push_back(op.GetInputDesc(0)); 其中GetInputDesc是Operator类中根据算子Input名称或者Input索引获取输入张量描述的接口,详细的接口介绍请参见《GE API参考》中的“Operator类接口”。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格