"""
super kernel constants
"""
import enum
CALL_INSTS = "CALLR"
FUNC_STR = "func_name"
OBJ_FILES_STR = "obj_files"
AI_CORE_STR = "AiCore"
ERR_CODE = "EB0500"
class SuperKernelDeviceType(enum.Enum):
"""super kernel device type"""
KERNEL_DEVICE_TYPE_AIV = 0
KERNEL_DEVICE_TYPE_AIC = 1
KERNEL_DEVICE_TYPE_MIX = 2
KERNEL_DEVICE_TYPE_MAX = 3
class SuperKernelEarlyStartMode(enum.Enum):
"""early start mode"""
EarlyStartDisable = 0
EarlyStartEnableV1 = 1
EarlyStartEnableV2 = 2
EarlyStartV2DisableSubKernel = 3
class SuperKernelFeedSyncAllMode(enum.Enum):
"""feed sync all mode"""
FeedSyncAllDisable = 0
FeedSyncAllEnable = 1
class SuperKernelLinkMode(enum.Enum):
"""super kernel link mode"""
PerVecHerCube = 0
PerCubeHerVec = 1
PerCubeHerVecWithSuper = 2
class SuperKernelStreamFusionMode(enum.Enum):
"""stream fusion mode"""
StreamFusionDisable = 0
StreamFusionEnable = 1
class SubOperatorType(enum.Enum):
STATIC_OP = 0
DYNAMIC_OP = 1
class SuperKernelPreLoadMode(enum.Enum):
"""preload Mode"""
PreLoadStepByStep = 0
PreLoadByWhole = 1
PreloadByAdanvanceStep = 2
PreloadNA = 3
class SuperKernelDebugDcciAllMode(enum.Enum):
"""debug dcci all mode"""
DebugDcciAllDisable = 0
DebugDcciAllEnable = 1
class SuperKernelDebugSyncAllMode(enum.Enum):
"""debug sync all mode"""
DebugSyncAllDisable = 0
DebugSyncAllEnable = 1
class SuperKernelDataCacheMode(enum.Enum):
"""super kernel link mode"""
DataCacheLoadAdancanceStep = 0
DataCacheLoadNA = 1
class SuperKernelProfilingMode(enum.Enum):
"""stream fusion mode"""
ProfilingDisable = 0
ProfilingEnable = 1
class SuperKernelKernelType(enum.Enum):
"""super kernel kernel type."""
KERNEL_TYPE_AIV_ONLY = 0
KERNEL_TYPE_AIC_ONLY = 1
KERNEL_TYPE_MIX_AIV_HARD_SYNC = 2
KERNEL_TYPE_MIX_AIC_HARD_SYNC = 3
KERNEL_TYPE_MIX_AIV_1_0 = 4
KERNEL_TYPE_MIX_AIC_1_0 = 5
KERNEL_TYPE_MIX_AIC_1_1 = 6
KERNEL_TYPE_MIX_AIC_1_2 = 7
KERNEL_TYPE_AICORE = 8
KERNEL_TYPE_VECTORCORE = 9
KERNEL_TYPE_MIX_AICORE = 10
KERNEL_TYPE_MIX_VECTOR_CORE = 11
KERNEL_TYPE_MAX = 12
STR_TO_SK_KERNEL_TYPE = {
"KERNEL_TYPE_AIV_ONLY": SuperKernelKernelType.KERNEL_TYPE_AIV_ONLY,
"KERNEL_TYPE_AIC_ONLY": SuperKernelKernelType.KERNEL_TYPE_AIC_ONLY,
"KERNEL_TYPE_MIX_AIV_1_0": SuperKernelKernelType.KERNEL_TYPE_MIX_AIV_1_0,
"KERNEL_TYPE_MIX_AIC_1_0": SuperKernelKernelType.KERNEL_TYPE_MIX_AIC_1_0,
"KERNEL_TYPE_MIX_AIC_1_1": SuperKernelKernelType.KERNEL_TYPE_MIX_AIC_1_1,
"KERNEL_TYPE_MIX_AIC_1_2": SuperKernelKernelType.KERNEL_TYPE_MIX_AIC_1_2,
}
STR_TO_SUPER_TASK_TYPE = {
"normal": SubOperatorType.STATIC_OP,
"dynamic": SubOperatorType.DYNAMIC_OP,
}