Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add mindspore-ai/akg --skill triton-ascend-case-reduction-amin-atomicgit clone --depth 1 https://github.com/mindspore-ai/akgWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mindspore-ai/akg/triton-ascend-case-reduction-amin-atomic)<a href="https://agentmods.dev/skills/mindspore-ai/akg/triton-ascend-case-reduction-amin-atomic"><img src="https://agentmods.dev/badge/skills/mindspore-ai/akg/triton-ascend-case-reduction-amin-atomic/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mindspore-ai/akg/triton-ascend-case-reduction-amin-atomic"><img src="https://agentmods.dev/badge/skills/mindspore-ai/akg/triton-ascend-case-reduction-amin-atomic.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00085 | $0.01602 |
| Opus 5 | $0.00043 | $0.00801 |
| Sonnet 5 | $0.00017 | $0.00320 |
| Haiku 4.5 | $0.00009 | $0.00160 |
Grade A, and why
triton-ascend-case-reduction-amin-atomic scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Amin 归约原子操作优化案例
任务特征
- 数据尺寸:(16, 262144),非reduce轴很小,reduce轴很大
- 策略:将reduce轴映射到多核,通过原子操作实现跨线程块归约
优化 1:切分策略调整
# 简单方式:非reduce轴映射多核
grid = lambda meta: (triton.cdiv(M, meta['BLOCK_SIZE_M']),)
# 错误:优化方式:reduce轴映射多核
grid = lambda meta: (triton.cdiv(N, meta['BLOCK_SIZE_N']),)
# Kernel内对列进行二次切分
for n_start in range(0, BLOCK_SIZE_N, SUB_BLOCK_SIZE_N):
n_offsets = pid * BLOCK_SIZE_N + n_start + tl.arange(0, SUB_BLOCK_SIZE_N)
优化内容
- 调整切分策略,由非reduce轴映射多核调整为reduce轴映射多核
- 为了不超过硬件缓存,kernel内对列进行二次切分
优化 2:计算重组
# 简单方式:循环内多次归约
row_min = float('inf')
for n_start in range(0, BLOCK_SIZE_N, SUB_BLOCK_SIZE_N):
错误:curr_min = tl.min(data_block, 1)
row_min = tl.minimum(curr_min, row_min)
# 正确:优化方式:维护矩阵结构
curr_min = tl.full((BLOCK_SIZE_M, SUB_BLOCK_SIZE_N), float('inf'), dtype=tl.float32)
for n_start in range(0, BLOCK_SIZE_N, SUB_BLOCK_SIZE_N):
curr_min = tl.minimum(data_block, curr_min)
row_min = tl.min(curr_min, 1)
优化内容
- 利用curr_min保持矩阵结构,维护中间结果
- 将多次归约合并为一次归约,减少归约次数
优化 3:原子操作(两种方案)
方案一:循环内进行原子操作
for m_start in range(0, M, BLOCK_SIZE_M):
m_offsets = m_start + tl.arange(0, BLOCK_SIZE_M)
mmask = m_offsets < M
curr_min = tl.full((BLOCK_SIZE_M, SUB_BLOCK_SIZE_N), float('inf'), dtype=tl.float32)
for n_start in range(0, BLOCK_SIZE_N, SUB_BLOCK_SIZE_N):
n_offsets = pid * BLOCK_SIZE_N + n_start + tl.arange(0, SUB_BLOCK_SIZE_N)
nmask = n_offsets < N
mask = (mmask[:, None]) & (nmask[None, :])
block_ptrs = in_ptr0 + m_offsets[:,None] * in_stride0 + n_offsets[None,:] * in_stride1
data_block = tl.load(block_ptrs, mask=mask, other=float('inf'))
curr_min = tl.minimum(data_block, curr_min)
row_min = tl.min(curr_min, 1)
output_ptrs = out_ptr0 + m_offsets * out_stride0
tl.atomic_min(output_ptrs, row_min, mask=mmask) # 每块立即原子操作
特点:
- 减少了中间存储
- 但增加了原子操作频率
方案二:循环外进行原子操作
all_row_min = tl.full((M,), float('inf'), dtype=tl.float32) # 预分配完整数组
for m_start in range(0, M, BLOCK_SIZE_M):
m_offsets = m_start + tl.arange(0, BLOCK_SIZE_M)
mmask = m_offsets < M
curr_min = tl.full((BLOCK_SIZE_M, SUB_BLOCK_SIZE_N), float('inf'), dtype=tl.float32)
for n_start in range(0, BLOCK_SIZE_N, SUB_BLOCK_SIZE_N):
n_offsets = pid * BLOCK_SIZE_N + n_start + tl.arange(0, SUB_BLOCK_SIZE_N)
nmask = n_offsets < N
mask = (mmask[:, None]) & (nmask[None, :])
block_ptrs = in_ptr0 + m_offsets[:,None] * in_stride0 + n_offsets[None,:] * in_stride1
data_block = tl.load(block_ptrs, mask=mask, other=float('inf'))
curr_min = tl.minimum(data_block, curr_min)
row_min = tl.min(curr_min, 1)
curr_block_size_m = tl.minimum(BLOCK_SIZE_M, M - m_start)
all_row_min = tl.insert_slice(all_row_min, row_min, [m_start], [curr_block_size_m], [1]) # 暂存中间结果
output_ptrs = out_ptr0 + tl.arange(0, M) * out_stride0
tl.atomic_min(output_ptrs, all_row_min) # 最后统一原子操作
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 141 lines · 85 tokens per session scan A 52fa706519d2
triton-ascend-case-reduction-amin-atomic is a skill published in the GitHub repository mindspore-ai/akg (259 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 85 tokens to every session and 1,602 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
triton-ascend-case-reduction-weighted-swiglu
A performance-optimization method for a specialized 3D tensor operation using Weighted SwiGLU during backward computation. It reshapes data and divides work to improve parallel processing while keeping within on-chip memory limits.
triton-ascend-case-elemwise-zeros
An optimization for creating small tensors with zeros, arange, or full in Triton Ascend. Triton Ascend is a programming environment for running tensor operations on Ascend hardware.
spark-environment-setup
Set up a working ML training/inference environment on NVIDIA DGX Spark (GB10, aarch64, CUDA 13). Use when installing PyTorch/Unsloth/TRL/vLLM on DGX Spark, hitting libcudart or wheel-ABI errors on aarch64, or choosing between NGC containers and bare pip installs.
spark-memory-thermal-ops
Manage unified memory and thermals during long-running ML jobs on NVIDIA DGX Spark. Use when planning memory headroom for a training run on GB10, when a job OOMs on unified memory, or when monitoring temperature and power during multi-hour training.
spark-training-gotchas
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
llama-cpp
Runs LLM inference on CPU, Apple Silicon, and consumer GPUs without NVIDIA hardware. Use for edge deployment, M1/M2/M3 Macs, AMD/Intel GPUs, or when CUDA is unavailable. Supports GGUF quantization (1.5-8 bit) for reduced memory and 4-10× speedup vs PyTorch on CPU.