* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License").
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
* \file DeviceConfig.cpp
* \brief
*/
#include "cost_model/simulation/config/DeviceConfig.h"
using namespace std;
namespace CostModel {
DeviceConfig::DeviceConfig()
{
Config::prefix = "Device";
Config::dispatcher = {
{"stitchLatency", [&](string v) { stitchLatency = ParseInteger(v); }},
{"submitLatency", [&](string v) { submitLatency = ParseInteger(v); }},
{"stitchMaxSize", [&](string v) { stitchMaxSize = ParseInteger(v); }},
{"submachineTypes", [&](string v) { ParseStrVec(v, submachineTypes); }},
{"submitTopo", [&](string v) { submitTopo = ParseBoolean(v); }},
{"submitTopoPath", [&](string v) { submitTopoPath = ParseString(v); }},
{"replayEnable", [&](string v) { replayEnable = ParseBoolean(v); }},
{"replayFile", [&](string v) { replayFile = ParseString(v); }},
{"replayTaskTimeScaling", [&](string v) { replayTaskTimeScaling = ParseBoolean(v); }},
};
Config::recorder = {
{"stitchLatency", [&]() { return "stitchLatency = " + ParameterToStr(stitchLatency); }},
{"submitLatency", [&]() { return "submitLatency = " + ParameterToStr(submitLatency); }},
{"stitchMaxSize", [&]() { return "stitchMaxSize = " + ParameterToStr(stitchMaxSize); }},
{"submachineTypes", [&]() { return "submachineTypes = " + ParameterToStr(submachineTypes); }},
{"submitTopo", [&]() { return "submitTopo = " + ParameterToStr(submitTopo); }},
{"submitTopoPath", [&]() { return "submitTopoPath = " + submitTopoPath; }},
{"replayEnable", [&]() { return "replayEnable = " + ParameterToStr(replayEnable); }},
{"replayFile", [&]() { return "replayFile = " + replayFile; }},
{"replayTaskTimeScaling", [&]() { return "replayTaskTimeScaling = " + ParameterToStr(replayTaskTimeScaling); }},
};
}
}