CANN/ops-sparse日志规范
【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparsename: sparse-log description: ops-sparse 日志集成规范定义 dlog 日志使用方式、日志级别、格式要求。ops-sparse 日志规范日志框架ops-sparse 使用dlog作为统一日志框架对应头文件#include log/log.h日志级别宏级别用途OP_LOGEERROR参数校验失败、ACL Runtime 调用失败、不可恢复错误OP_LOGWWARNING潜在问题、降级处理OP_LOGIINFOKernel 启动信息、关键执行节点OP_LOGDDEBUGTiling 数据、详细调试信息日志格式OP_LOGE(aclsparseXxx, Error message: %s, code: %d, detail, code); OP_LOGD(aclsparseXxx, Tiling data: rows%u, cols%u, blockDim%u, rows, cols, blockDim); OP_LOGI(aclsparseXxx, Kernel launched: blockIdx%u, stream%p, blockIdx, stream);格式规范第一个参数为API 名或算子名如aclsparseSpMV后续参数为格式化字符串 可变参数Host 侧日志集成强制规则必须包含#include log/log.h禁止使用printf、std::cout、LOG_PRINT旧代码遗留新代码禁止参数校验失败 →OP_LOGEACL Runtime 调用失败 →OP_LOGETiling 参数 →OP_LOGDKernel launch →OP_LOGI示例static aclsparseStatus_t ValidateSpMVParams(aclsparseHandle_t handle, ...) { if (handle nullptr) { OP_LOGE(aclsparseSpMV, handle is nullptr); return ACL_SPARSE_STATUS_HANDLE_IS_NULLPTR; } // ... } static aclsparseStatus_t LaunchSpMVKernel(...) { OP_LOGD(aclsparseSpMV, Tiling: rows%u, cols%u, blockDim%u, tiling.totalRowsNum, tiling.totalColNum, blockDim); spmv_kernel_do(...); OP_LOGI(aclsparseSpMV, Kernel launched, blockDim%u, blockDim); return ACL_SPARSE_STATUS_SUCCESS; }Kernel 侧日志Kernel 侧通常不使用 dlog性能考虑如需调试输出使用AscendC内置的PRINT宏仅调试模式使用正式代码中必须移除所有 Kernel 侧调试输出日志级别设置通过环境变量控制推荐export ASCEND_GLOBAL_LOG_LEVEL0 # 0DEBUG, 1INFO, 2WARNING, 3ERROR export ASCEND_SLOG_PRINT_TO_STDOUT1 # 1输出到 stdout详见references/log-config.md含CheckLogLevel条件调试用法。参考文档文档说明references/log-quickref.md日志级别选择速查表 稀疏算子特有参数格式references/host-log-templates.md6 种标准 Host 侧日志模板参数校验/ACL 失败/格式不支持/Tiling/Kernel 启动/早期返回references/log-config.mdCheckLogLevel条件调试 环境变量配置 aclsparseLoggerSetLevel说明references/best-practices.mdprintf→OP_LOG 迁移表 常见陷阱 最佳实践【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻