* Copyright (c) 2025-2026 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 lin_space_tiling_arch35.h
* \brief
*/
#ifndef LIN_SPACE_REGBASE_TILING_H_
#define LIN_SPACE_REGBASE_TILING_H_
#include "lin_space_tiling.h"
#include "register/tilingdata_base.h"
namespace optiling {
BEGIN_TILING_DATA_DEF(LinSpaceRegbaseTilingData)
TILING_DATA_FIELD_DEF(int64_t, totalCoreNum);
TILING_DATA_FIELD_DEF(int64_t, totalUbSize);
TILING_DATA_FIELD_DEF(int64_t, num);
TILING_DATA_FIELD_DEF(int64_t, usedCoreNum);
TILING_DATA_FIELD_DEF(int64_t, ubOneLoopNum);
TILING_DATA_FIELD_DEF(int64_t, numOfPerCore);
TILING_DATA_FIELD_DEF(int64_t, loopOfPerCore);
TILING_DATA_FIELD_DEF(int64_t, perOfPerCore);
TILING_DATA_FIELD_DEF(int64_t, tailOfPerCore);
TILING_DATA_FIELD_DEF(int64_t, numOfTailCore);
TILING_DATA_FIELD_DEF(int64_t, loopOfTailCore);
TILING_DATA_FIELD_DEF(int64_t, perOfTailCore);
TILING_DATA_FIELD_DEF(int64_t, tailOfTailCore);
TILING_DATA_FIELD_DEF(int64_t, halfWayCoreIdx);
TILING_DATA_FIELD_DEF(int64_t, forwardNumOfHalfWayCore);
TILING_DATA_FIELD_DEF(int64_t, loopOfForward);
TILING_DATA_FIELD_DEF(int64_t, tailOfForward);
TILING_DATA_FIELD_DEF(int64_t, loopOfBackward);
TILING_DATA_FIELD_DEF(int64_t, tailOfBackward);
TILING_DATA_FIELD_DEF(float, start);
TILING_DATA_FIELD_DEF(float, stop);
TILING_DATA_FIELD_DEF(float, step);
END_TILING_DATA_DEF;
REGISTER_TILING_DATA_CLASS(LinSpace_1002, LinSpaceRegbaseTilingData)
struct LinSpaceRegbaseTilingParam {
int64_t totalCoreNum;
int64_t totalUbSize;
int64_t num;
int64_t usedCoreNum;
int64_t ubOneLoopNum;
int64_t numOfPerCore;
int64_t loopOfPerCore;
int64_t perOfPerCore;
int64_t tailOfPerCore;
int64_t numOfTailCore;
int64_t loopOfTailCore;
int64_t perOfTailCore;
int64_t tailOfTailCore;
int64_t halfWayCoreIdx;
int64_t forwardNumOfHalfWayCore;
int64_t loopOfForward;
int64_t tailOfForward;
int64_t loopOfBackward;
int64_t tailOfBackward;
float start;
float stop;
float step;
};
constexpr uint64_t DOUBLE_CAST_TILING_KEY = 1002;
constexpr size_t RESERVED_WORKSPACE = static_cast<size_t>(16 * 1024 * 1024);
}
#endif