What problem does it solve? AscendC kernels compile successfully but crash at runtime with UB out-of-bounds errors (errno 507035) when the total bytes requested via InitBuffer exceed the physical Unified Buffer capacity. This Skill teaches you to compute the UB byte ledger before writing code, so BUFFER_NUM, TILE_LENGTH, and calcBuf combinations are chosen within hardware limits. ## Core Features & Use Cases - Per-device UB capacity reference: Documents UB sizes for 910B (192 KB), 910B3 (192 KB), 910B4 (128 KB), and 310B/310P, plus L0A/L0B/L0C/L1 budgets for Cube+Vector fused kernels. - Byte ledger formulas: Provides exact accounting for TQue (bytes × BUFFER_NUM), TBuf, calcBuf slicing, and compiler scratch headroom, with an 80%-of-UB safety rule. - Safe configuration tables and diagnostics: Lists recommended BUFFER_NUM/TILE_LENGTH combinations per operator pattern and a step-by-step diagnostic path for UB OOB crashes. - Use Case: You want to raise BUFFER_NUM from 2 to 3 on an fp16 elementwise kernel with TILE_LENGTH=8192 and three fp32 scratch buffers. The ledger shows 192 KB total usage, leaving no headroom on 910B3, so you instead compress scratch live ranges to reuse buffers before increasing queue depth. ## Quick Start Ask the assistant to check whether my AscendC kernel's InitBuffer configuration with BUFFER_NUM, TILE_LENGTH, and calcBuf sizes fits within the UB budget of my target Ascend device.