* Copyright (c) Huawei Technologies Co., Ltd. 2026-2026. All rights reserved.
* MindIE is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* 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 FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
* \file const_def.h
* \brief Common constants
*/
#ifndef CONST_DEF_H
#define CONST_DEF_H
namespace AttentionCommon {
constexpr uint64_t BYTE_BLOCK = 32UL;
constexpr uint32_t FP32_BLOCK_ELEMENT_NUM = BYTE_BLOCK / sizeof(float);
enum class TASK_DEAL_MODE : uint32_t {
DEAL_ZERO = 0,
SKIP = 1,
CREATE_TASK = 2,
SKIP_S1OUT = 3,
SKIP_ZERO = 4,
S2_END = 5,
};
template <typename T> __aicore__ inline T Align(T num, T rnd) {
return (((rnd) == 0) ? 0 : (((num) + (rnd)-1) / (rnd) * (rnd)));
}
template <typename T1, typename T2> __aicore__ inline T1 Min(T1 a, T2 b) { return (a > b) ? (b) : (a); }
template <typename T1, typename T2> __aicore__ inline T1 Max(T1 a, T2 b) { return (a > b) ? (a) : (b); }
template <typename T> __aicore__ inline T CeilDiv(T num, T rnd) {
return (((rnd) == 0) ? 0 : (((num) + (rnd)-1) / (rnd)));
}
}
#endif