mxready 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. mxready/__init__.py +1 -0
  2. mxready/api/__init__.py +4 -0
  3. mxready/api/middleware.py +149 -0
  4. mxready/api/rules.py +10 -0
  5. mxready/api/scans.py +164 -0
  6. mxready/api/workspace.py +156 -0
  7. mxready/app.py +179 -0
  8. mxready/cli/__init__.py +1 -0
  9. mxready/cli/build_verification_bundle.py +45 -0
  10. mxready/cli/generate_public_report.py +140 -0
  11. mxready/cli/scan_batch.py +368 -0
  12. mxready/cli/scan_repository.py +212 -0
  13. mxready/cli/serve.py +55 -0
  14. mxready/config.py +117 -0
  15. mxready/errors.py +11 -0
  16. mxready/logging_setup.py +88 -0
  17. mxready/mcp/__init__.py +5 -0
  18. mxready/mcp/server.py +433 -0
  19. mxready/models.py +382 -0
  20. mxready/persistence/__init__.py +1 -0
  21. mxready/persistence/sqlite.py +581 -0
  22. mxready/py.typed +0 -0
  23. mxready/reporting/__init__.py +4 -0
  24. mxready/reporting/badge.py +40 -0
  25. mxready/reporting/comparison.py +33 -0
  26. mxready/reporting/markdown.py +157 -0
  27. mxready/reporting/sarif.py +94 -0
  28. mxready/reporting/terminal.py +75 -0
  29. mxready/repository/__init__.py +14 -0
  30. mxready/repository/git_client.py +275 -0
  31. mxready/repository/github_archive.py +566 -0
  32. mxready/repository/identity.py +140 -0
  33. mxready/resources/__init__.py +19 -0
  34. mxready/resources/frontend/assets/index-BxJEwNUm.css +1 -0
  35. mxready/resources/frontend/assets/index-lzTCdWAt.js +9 -0
  36. mxready/resources/frontend/assets/mx-chip-C0HgFQyE.webp +0 -0
  37. mxready/resources/frontend/index.html +17 -0
  38. mxready/resources/rules/v1/core.yml +634 -0
  39. mxready/resources/rules/v1/manifest.yml +4 -0
  40. mxready/resources/schemas/verification-result-v1.json +259 -0
  41. mxready/scanning/__init__.py +17 -0
  42. mxready/scanning/analyzer.py +183 -0
  43. mxready/scanning/facts.py +596 -0
  44. mxready/scanning/indexer.py +299 -0
  45. mxready/scanning/path_context.py +174 -0
  46. mxready/scanning/python_source.py +67 -0
  47. mxready/scanning/rule_engine.py +595 -0
  48. mxready/scanning/rule_loader.py +282 -0
  49. mxready/scanning/toolchain.py +100 -0
  50. mxready/services/__init__.py +3 -0
  51. mxready/services/scans.py +239 -0
  52. mxready/services/worker.py +38 -0
  53. mxready/verification/__init__.py +11 -0
  54. mxready/verification/bundle.py +137 -0
  55. mxready/verification/validation.py +101 -0
  56. mxready-1.0.0.dist-info/METADATA +526 -0
  57. mxready-1.0.0.dist-info/RECORD +71 -0
  58. mxready-1.0.0.dist-info/WHEEL +5 -0
  59. mxready-1.0.0.dist-info/entry_points.txt +8 -0
  60. mxready-1.0.0.dist-info/licenses/LICENSE +201 -0
  61. mxready-1.0.0.dist-info/top_level.txt +2 -0
  62. mxready_runner/__init__.py +1 -0
  63. mxready_runner/__main__.py +3 -0
  64. mxready_runner/cli.py +88 -0
  65. mxready_runner/contracts.py +26 -0
  66. mxready_runner/execute.py +185 -0
  67. mxready_runner/inspect.py +79 -0
  68. mxready_runner/process.py +103 -0
  69. mxready_runner/py.typed +0 -0
  70. mxready_runner/redact.py +36 -0
  71. mxready_runner/schema.py +326 -0
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <meta
7
+ name="description"
8
+ content="MXReady:面向 PyTorch CUDA 扩展项目的沐曦 MXMACA 迁移准备度体检工具"
9
+ />
10
+ <title>MXReady · 沐曦适配体检</title>
11
+ <script type="module" crossorigin src="/assets/index-lzTCdWAt.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-BxJEwNUm.css">
13
+ </head>
14
+ <body>
15
+ <div id="root"></div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,634 @@
1
+ - id: MXR-TOOLCHAIN-001
2
+ version: 2
3
+ title: 检测直接 nvcc 工具调用
4
+ category: toolchain
5
+ severity: blocker
6
+ # Makefile / *.mk 必须在内:CUDA 侧大量项目(含 cuda-samples)用 Make 构建,
7
+ # cu-bridge 的官方入口 make_maca 本身就是 make 包装器。此前这里漏掉 Makefile,
8
+ # 导致 `NVCC = nvcc` 这类最容易命中的写法完全不可见。
9
+ file_globs:
10
+ [
11
+ "**/*.py",
12
+ "**/*.sh",
13
+ "**/*.cmake",
14
+ "**/CMakeLists.txt",
15
+ "**/Makefile",
16
+ "**/makefile",
17
+ "**/GNUmakefile",
18
+ "**/*.mk",
19
+ ]
20
+ patterns:
21
+ - type: regex
22
+ expression: '(?:subprocess\.(?:run|Popen|call|check_call|check_output)|os\.system)\s*\([^\n]{0,200}\bnvcc\b'
23
+ flags: [IGNORECASE]
24
+ - type: regex
25
+ expression: '(?m)^\s*(?:NVCC|CMAKE_CUDA_COMPILER)\s*=\s*[^\n]*\bnvcc\b'
26
+ flags: [IGNORECASE]
27
+ - type: regex
28
+ expression: '(?m)^\s*(?:[A-Za-z_][A-Za-z0-9_]*=\S+\s+)*(?:\S*/)?nvcc(?!\s*=)(?:\s|$)'
29
+ flags: [IGNORECASE]
30
+ message: 项目直接调用或固定指定 nvcc,迁移到 MXMACA/cu-bridge 时工具入口与参数需要复核。
31
+ recommendation: 请复核调用点,按 cu-bridge 当前版本配置对应工具链,并在沐曦环境验证构建。
32
+ references:
33
+ - title: MetaX-MACA cu-bridge
34
+ url: https://gitee.com/metax-maca/cu-bridge
35
+
36
+ - id: MXR-TOOLCHAIN-002
37
+ version: 1
38
+ title: 识别 cu-bridge 工具链接入
39
+ category: toolchain
40
+ severity: info
41
+ file_globs:
42
+ [
43
+ "**/*.py",
44
+ "**/*.sh",
45
+ "**/*.cmake",
46
+ "**/CMakeLists.txt",
47
+ "**/Makefile",
48
+ "**/makefile",
49
+ "**/GNUmakefile",
50
+ "**/*.mk",
51
+ "**/Dockerfile",
52
+ "**/*.dockerfile",
53
+ ]
54
+ patterns:
55
+ - type: fact
56
+ name: uses_cu_bridge_toolchain
57
+ equals: true
58
+ message: 项目已包含 cu-bridge 工具链入口(make_maca / cmake_maca / cucc / CUCC_* 环境变量),构建层已接入 MXMACA 兼容层。
59
+ recommendation: 请复核 cu-bridge 版本与 conf.json 的覆盖范围,并在沐曦环境验证构建;若有脚本绕过包装器直接调用 nvcc,仍需单独处理。
60
+ references:
61
+ - title: MetaX-MACA cu-bridge
62
+ url: https://gitee.com/metax-maca/cu-bridge
63
+ - title: cu-bridge 使用手册
64
+ url: https://gitee.com/p4ul/cu-bridge/tree/master
65
+
66
+ - id: MXR-PATH-001
67
+ version: 1
68
+ title: 检测硬编码 CUDA 安装路径
69
+ category: path
70
+ severity: warning
71
+ file_globs:
72
+ [
73
+ "**/*.py",
74
+ "**/*.sh",
75
+ "**/*.cmake",
76
+ "**/CMakeLists.txt",
77
+ "**/*.toml",
78
+ "**/*.cfg",
79
+ "**/Makefile",
80
+ "**/makefile",
81
+ "**/GNUmakefile",
82
+ "**/*.mk",
83
+ ]
84
+ patterns:
85
+ - type: regex
86
+ expression: '/usr/local/cuda(?:/|\b)'
87
+ message: 项目硬编码了 /usr/local/cuda,可能绕过 MXMACA/cu-bridge 提供的工具链路径。
88
+ recommendation: 请将路径改为可配置项,复核 cu-bridge 环境变量,并在沐曦服务器验证解析结果。
89
+ references:
90
+ - title: MetaX-MACA cu-bridge
91
+ url: https://gitee.com/metax-maca/cu-bridge
92
+
93
+ - id: MXR-PYTORCH-001
94
+ version: 1
95
+ title: 识别 PyTorch CUDAExtension
96
+ category: pytorch-extension
97
+ severity: info
98
+ file_globs: ["**/*.py"]
99
+ patterns:
100
+ - type: fact
101
+ name: uses_torch_cuda_extension
102
+ equals: true
103
+ message: 项目通过 PyTorch CUDAExtension 构建原生扩展,需要准备与目标工具链匹配的编译环境。
104
+ recommendation: 请复核扩展源文件、编译参数与依赖库,并在 MXMACA PyTorch 环境完成最小构建验证。
105
+ references:
106
+ - title: PyTorch C++/CUDA extensions
107
+ url: https://docs.pytorch.org/docs/stable/cpp_extension.html
108
+
109
+ - id: MXR-DEPENDENCY-001
110
+ version: 1
111
+ title: 检测 flash-attn 依赖
112
+ category: dependency
113
+ severity: warning
114
+ file_globs: ["**/requirements*.txt", "**/pyproject.toml", "**/setup.cfg", "**/setup.py"]
115
+ patterns:
116
+ - type: dependency
117
+ name: flash-attn
118
+ message: 项目声明了 flash-attn,其原生扩展、架构参数与版本组合需要在目标平台单独验证。
119
+ recommendation: 请复核 flash-attn 版本和构建选项,先验证最小导入与算子,再运行项目级测试。
120
+ references:
121
+ - title: PyTorch C++/CUDA extensions
122
+ url: https://docs.pytorch.org/docs/stable/cpp_extension.html
123
+
124
+ - id: MXR-CMAKE-001
125
+ version: 1
126
+ title: 识别 CMake CUDA 语言
127
+ category: cmake
128
+ severity: info
129
+ file_globs: ["**/CMakeLists.txt", "**/*.cmake"]
130
+ patterns:
131
+ - type: fact
132
+ name: uses_cmake_cuda_language
133
+ equals: true
134
+ message: CMake 项目启用了 CUDA 语言,目标环境需要提供与工程探测逻辑匹配的编译器。
135
+ recommendation: 请复核 CMake 工具链选择和语言探测结果,并在 MXMACA/cu-bridge 环境验证配置阶段。
136
+ references:
137
+ - title: CMake FindCUDAToolkit
138
+ url: https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html
139
+
140
+ - id: MXR-CMAKE-002
141
+ version: 1
142
+ title: 检测 CMake FindCUDAToolkit
143
+ category: cmake
144
+ severity: warning
145
+ file_globs: ["**/CMakeLists.txt", "**/*.cmake"]
146
+ patterns:
147
+ - type: regex
148
+ expression: '\bfind_package\s*\(\s*CUDAToolkit\b'
149
+ flags: [IGNORECASE]
150
+ message: 工程显式查找 NVIDIA CUDAToolkit,其搜索路径和导入目标带有工具链假设。
151
+ recommendation: 请复核 CUDAToolkit_ROOT、导入目标和链接库,并在 cu-bridge 环境验证 CMake 配置。
152
+ references:
153
+ - title: CMake FindCUDAToolkit
154
+ url: https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html
155
+
156
+ - id: MXR-ARCH-001
157
+ version: 1
158
+ title: 检测 CUDA gencode 参数
159
+ category: architecture
160
+ severity: warning
161
+ file_globs: ["**/*.py", "**/*.sh", "**/*.cmake", "**/CMakeLists.txt", "**/*.toml", "**/*.cfg"]
162
+ patterns:
163
+ - type: regex
164
+ expression: '(?:-gencode|--generate-code)(?:[=\s]|$)'
165
+ message: 构建参数显式生成 NVIDIA compute/sm 目标,可能固化了设备架构假设。
166
+ recommendation: 请复核目标架构参数,依据 MXMACA 工具链要求调整,并在沐曦设备验证生成物。
167
+ references:
168
+ - title: MXMACA performance tuning guide
169
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
170
+
171
+ - id: MXR-ARCH-002
172
+ version: 1
173
+ title: 检测硬编码 sm 或 compute 架构
174
+ category: architecture
175
+ severity: warning
176
+ file_globs: ["**/*.py", "**/*.sh", "**/*.cmake", "**/CMakeLists.txt", "**/*.toml", "**/*.cfg"]
177
+ patterns:
178
+ - type: regex
179
+ expression: '\b(?:sm|compute)_[0-9]{2,3}\b'
180
+ flags: [IGNORECASE]
181
+ message: 项目硬编码了 NVIDIA sm/compute 架构编号,需要确认目标编译器如何处理该配置。
182
+ recommendation: 请复核架构列表是否可配置,并在 MXMACA 工具链上验证编译参数和运行结果。
183
+ references:
184
+ - title: MXMACA performance tuning guide
185
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
186
+
187
+ - id: MXR-TOOL-001
188
+ version: 1
189
+ title: 检测直接 nvidia-smi 调用
190
+ category: tool
191
+ severity: warning
192
+ file_globs:
193
+ [
194
+ "**/*.py",
195
+ "**/*.sh",
196
+ "**/Makefile",
197
+ "**/makefile",
198
+ "**/GNUmakefile",
199
+ "**/*.mk",
200
+ ]
201
+ patterns:
202
+ - type: regex
203
+ expression: '(?:subprocess\.(?:run|Popen|call|check_call|check_output)|os\.system)\s*\([^\n]{0,200}\bnvidia-smi\b'
204
+ flags: [IGNORECASE]
205
+ - type: regex
206
+ expression: '(?m)^\s*(?:\S*/)?nvidia-smi(?:\s|$)'
207
+ flags: [IGNORECASE]
208
+ message: 项目直接调用 nvidia-smi,设备发现或诊断流程依赖 NVIDIA 专用工具。
209
+ recommendation: 请复核诊断逻辑并提供可替换工具入口,再在沐曦服务器验证设备信息采集。
210
+ references:
211
+ - title: MetaX-MACA cu-bridge
212
+ url: https://gitee.com/metax-maca/cu-bridge
213
+
214
+ - id: MXR-COMM-001
215
+ version: 1
216
+ title: 检测 NCCL 环境变量覆盖
217
+ category: communication
218
+ severity: warning
219
+ file_globs: ["**/*.py", "**/*.sh", "**/*.toml", "**/*.cfg"]
220
+ patterns:
221
+ - type: regex
222
+ expression: '(?m)^\s*os\.environ\[(?=[^\]\n]*NCCL_[A-Z0-9_])[^\]\n]*\]\s*='
223
+ - type: regex
224
+ expression: '(?m)^\s*(?:export\s+)?NCCL_[A-Z0-9_]+\s*='
225
+ message: 项目覆盖了 NVIDIA NCCL 环境变量,多卡通信配置包含平台特定假设。
226
+ recommendation: 请复核通信后端、环境变量和拓扑配置,并在沐曦多卡环境进行针对性验证。
227
+ references:
228
+ - title: MetaX-MACA cu-bridge
229
+ url: https://gitee.com/metax-maca/cu-bridge
230
+
231
+ - id: MXR-DEPENDENCY-002
232
+ version: 1
233
+ title: 检测 bitsandbytes 依赖
234
+ category: dependency
235
+ severity: warning
236
+ file_globs: ["**/requirements*.txt", "**/pyproject.toml", "**/setup.cfg", "**/setup.py"]
237
+ patterns:
238
+ - type: dependency
239
+ name: bitsandbytes
240
+ message: bitsandbytes 包含原生 GPU 组件和设备相关构建逻辑,需要单独确认目标平台版本。
241
+ recommendation: 请复核依赖版本、预编译包来源和算子覆盖,并在沐曦环境验证导入与核心功能。
242
+ references:
243
+ - title: MetaX-MACA cu-bridge
244
+ url: https://gitee.com/metax-maca/cu-bridge
245
+
246
+ - id: MXR-DEPENDENCY-003
247
+ version: 1
248
+ title: 检测 xformers 依赖
249
+ category: dependency
250
+ severity: warning
251
+ file_globs: ["**/requirements*.txt", "**/pyproject.toml", "**/setup.cfg", "**/setup.py"]
252
+ patterns:
253
+ - type: dependency
254
+ name: xformers
255
+ message: xformers 可能构建并选择设备特定的原生算子,需确认版本与工具链组合。
256
+ recommendation: 请复核 xformers 构建选项和算子回退路径,并在沐曦环境验证项目实际调用链。
257
+ references:
258
+ - title: PyTorch C++/CUDA extensions
259
+ url: https://docs.pytorch.org/docs/stable/cpp_extension.html
260
+
261
+ - id: MXR-DEPENDENCY-004
262
+ version: 1
263
+ title: 检测 TensorRT 依赖或导入
264
+ category: dependency
265
+ severity: blocker
266
+ file_globs: ["**/requirements*.txt", "**/pyproject.toml", "**/setup.cfg", "**/setup.py", "**/*.py"]
267
+ patterns:
268
+ - type: dependency
269
+ name: tensorrt
270
+ - type: fact
271
+ name: imports_tensorrt
272
+ equals: true
273
+ message: 项目直接依赖或导入 TensorRT,当前执行路径包含 NVIDIA 专用运行时边界。
274
+ recommendation: 请复核是否存在可替换后端或隔离路径,并先验证沐曦目标栈的等价推理流程。
275
+ references:
276
+ - title: MetaX-MACA cu-bridge
277
+ url: https://gitee.com/metax-maca/cu-bridge
278
+
279
+ - id: MXR-HEADER-001
280
+ version: 1
281
+ title: 识别 cuda_runtime.h 头文件
282
+ category: header
283
+ severity: info
284
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
285
+ patterns:
286
+ - type: regex
287
+ expression: '(?m)^\s*#\s*include\s*[<"]cuda_runtime\.h[>"]'
288
+ message: 源码直接包含 CUDA Runtime 头文件,需要由目标兼容层和工具链提供相应映射。
289
+ recommendation: 请复核使用到的 Runtime API,并结合 cu-bridge 当前版本在沐曦环境验证编译与功能。
290
+ references:
291
+ - title: MetaX-MACA cu-bridge
292
+ url: https://gitee.com/metax-maca/cu-bridge
293
+
294
+ - id: MXR-HEADER-002
295
+ version: 1
296
+ title: 识别 cuda.h 驱动头文件
297
+ category: header
298
+ severity: info
299
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
300
+ patterns:
301
+ - type: regex
302
+ expression: '(?m)^\s*#\s*include\s*[<"]cuda\.h[>"]'
303
+ message: 源码直接包含 CUDA Driver 头文件,需要核对所用 Driver API 的目标映射。
304
+ recommendation: 请复核 Driver API 调用范围,并结合 cu-bridge 文档在沐曦环境验证编译与行为。
305
+ references:
306
+ - title: MetaX-MACA cu-bridge
307
+ url: https://gitee.com/metax-maca/cu-bridge
308
+
309
+ - id: MXR-INTRINSIC-001
310
+ version: 1
311
+ title: 检测 CUDA warp 同步内建函数
312
+ category: intrinsic
313
+ severity: warning
314
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.h", "**/*.hpp"]
315
+ patterns:
316
+ - type: regex
317
+ expression: '\b__(?:shfl(?:_(?:up|down|xor))?_sync|ballot_sync|activemask)\s*\('
318
+ message: 内核使用 warp 同步内建函数,其掩码、warp 宽度和硬件执行假设需要复核。
319
+ recommendation: 请复核内建函数语义与 warp 假设,并依据性能指南在沐曦设备验证正确性和性能。
320
+ references:
321
+ - title: CUDA Programming Guide
322
+ url: https://docs.nvidia.com/cuda/cuda-programming-guide/
323
+ - title: MXMACA performance tuning guide
324
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
325
+
326
+ - id: MXR-KERNEL-001
327
+ version: 1
328
+ title: 检测 __launch_bounds__ 调优假设
329
+ category: kernel
330
+ severity: warning
331
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.h", "**/*.hpp"]
332
+ patterns:
333
+ - type: regex
334
+ expression: '\b__launch_bounds__\s*\('
335
+ message: 内核使用 __launch_bounds__ 固化线程和寄存器调优假设,目标架构的最佳配置可能不同。
336
+ recommendation: 请复核线程块和资源约束,并依据 MXMACA 性能指南在沐曦设备重新验证调优参数。
337
+ references:
338
+ - title: MXMACA performance tuning guide
339
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
340
+ - title: CUDA Programming Guide
341
+ url: https://docs.nvidia.com/cuda/cuda-programming-guide/
342
+
343
+ - id: MXR-GRAPH-001
344
+ version: 1
345
+ title: 检测 CUDA Graph API
346
+ category: graph
347
+ severity: warning
348
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
349
+ patterns:
350
+ - type: regex
351
+ expression: '\bcudaGraph[A-Za-z0-9_]*\s*\('
352
+ message: 项目调用 CUDA Graph API,图构建、更新和执行行为需要在目标运行时单独确认。
353
+ recommendation: 请复核实际使用的 Graph API 与错误处理路径,并在沐曦环境验证功能和收益。
354
+ references:
355
+ - title: CUDA Programming Guide
356
+ url: https://docs.nvidia.com/cuda/cuda-programming-guide/
357
+ - title: MetaX-MACA cu-bridge
358
+ url: https://gitee.com/metax-maca/cu-bridge
359
+
360
+ - id: MXR-BUILD-001
361
+ version: 1
362
+ title: 检测 TORCH_CUDA_ARCH_LIST 覆盖
363
+ category: build
364
+ severity: warning
365
+ file_globs: ["**/*.py", "**/*.sh", "**/*.toml", "**/*.cfg"]
366
+ patterns:
367
+ - type: regex
368
+ expression: '(?m)^\s*os\.environ\[[^\]\n]*TORCH_CUDA_ARCH_LIST[^\]\n]*\]\s*='
369
+ - type: regex
370
+ expression: '(?m)^\s*(?:export\s+)?TORCH_CUDA_ARCH_LIST\s*='
371
+ message: 项目显式覆盖 TORCH_CUDA_ARCH_LIST,构建产物可能绑定 NVIDIA 架构列表。
372
+ recommendation: 请复核 PyTorch 扩展的架构选择方式,移除不适用假设,并在 MXMACA 环境验证构建。
373
+ references:
374
+ - title: PyTorch C++/CUDA extensions
375
+ url: https://docs.pytorch.org/docs/stable/cpp_extension.html
376
+
377
+ - id: MXR-PYTORCH-002
378
+ version: 1
379
+ title: 识别 PyTorch JIT 原生扩展
380
+ category: pytorch-extension
381
+ severity: info
382
+ file_globs: ["**/*.py"]
383
+ patterns:
384
+ - type: fact
385
+ name: uses_torch_cpp_extension_load
386
+ equals: true
387
+ message: 项目使用 torch.utils.cpp_extension.load 在运行时编译扩展,执行环境必须具备完整工具链。
388
+ recommendation: 请复核 JIT 源码、缓存、编译参数与依赖,并在 MXMACA 环境验证首次和重复加载。
389
+ references:
390
+ - title: PyTorch C++/CUDA extensions
391
+ url: https://docs.pytorch.org/docs/stable/cpp_extension.html
392
+
393
+ - id: MXR-DOCKER-001
394
+ version: 1
395
+ title: 检测 NVIDIA GPU 容器基础镜像与运行时配置
396
+ category: docker
397
+ severity: warning
398
+ file_globs: ["**/Dockerfile", "**/*.dockerfile", "**/docker-compose*.yml", "**/docker-compose*.yaml"]
399
+ patterns:
400
+ - type: regex
401
+ expression: '^\s*FROM\s+(?:nvidia/cuda|nvcr\.io|nvidia/cudagl|nvidia/tensorrt|nvidia/tritonserver)(?:[:/\s]|$)'
402
+ flags: [IGNORECASE, MULTILINE]
403
+ - type: regex
404
+ expression: '(?:nvidia-docker|nvidia-container-runtime|--gpus\s|--runtime\s*=\s*nvidia|gpus:\s*all)'
405
+ flags: [IGNORECASE]
406
+ message: 镜像或运行配置基于 NVIDIA GPU 容器体系,迁移到沐曦环境需要更换基础镜像与容器运行时参数。
407
+ recommendation: 请复核基础镜像来源、--gpus/--runtime 参数与 GPU 设备挂载方式,替换为沐曦环境的等价方案后验证容器内算子。
408
+ references:
409
+ - title: MetaX-MACA cu-bridge
410
+ url: https://gitee.com/metax-maca/cu-bridge
411
+
412
+ - id: MXR-MEMORY-001
413
+ version: 1
414
+ title: 检测 CUDA 显存管理 Runtime API
415
+ category: runtime
416
+ severity: info
417
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
418
+ patterns:
419
+ - type: regex
420
+ expression: '\bcuda(?:Malloc|MallocAsync|MallocManaged|Free|FreeAsync)\s*\('
421
+ flags: [IGNORECASE]
422
+ message: 源码调用 CUDA 显存管理 Runtime API,需要确认 cu-bridge 对相应 API 的映射与行为差异。
423
+ recommendation: 请复核显存分配/释放调用点与错误处理,并结合 cu-bridge 当前版本在沐曦环境验证。
424
+ references:
425
+ - title: MetaX-MACA cu-bridge
426
+ url: https://gitee.com/metax-maca/cu-bridge
427
+
428
+ - id: MXR-STREAM-001
429
+ version: 1
430
+ title: 检测 CUDA 流(Stream)API
431
+ category: runtime
432
+ severity: info
433
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
434
+ patterns:
435
+ - type: regex
436
+ expression: '\bcudaStream[A-Za-z0-9]*\s*\('
437
+ flags: [IGNORECASE]
438
+ message: 源码调用 CUDA 流(Stream)API,流创建、同步与事件语义需要结合目标运行时确认。
439
+ recommendation: 请复核流与事件的使用方式,并在沐曦环境验证并发与同步行为。
440
+ references:
441
+ - title: MetaX-MACA cu-bridge
442
+ url: https://gitee.com/metax-maca/cu-bridge
443
+
444
+ - id: MXR-DEVICE-001
445
+ version: 1
446
+ title: 检测 CUDA 设备管理 API
447
+ category: runtime
448
+ severity: info
449
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
450
+ patterns:
451
+ - type: regex
452
+ expression: '\bcuda(?:SetDevice|GetDevice|GetDeviceCount|DeviceSynchronize|DeviceReset)\s*\('
453
+ flags: [IGNORECASE]
454
+ message: 源码调用 CUDA 设备管理 API,多设备枚举与选择逻辑包含平台假设。
455
+ recommendation: 请复核设备选择与同步逻辑,并在沐曦环境验证设备枚举与上下文行为。
456
+ references:
457
+ - title: MetaX-MACA cu-bridge
458
+ url: https://gitee.com/metax-maca/cu-bridge
459
+
460
+ - id: MXR-COMM-002
461
+ version: 1
462
+ title: 检测 torch.distributed NCCL 通信后端
463
+ category: communication
464
+ severity: warning
465
+ file_globs: ["**/*.py"]
466
+ patterns:
467
+ - type: regex
468
+ expression: '\b(?:init_process_group|new_group)\s*\(\s*[''"]nccl[''"]'
469
+ - type: regex
470
+ expression: '\b(?:init_process_group|new_group)\s*\([^\n]{0,200}\bbackend\s*=\s*[''"]nccl[''"]'
471
+ message: 项目将分布式通信后端指定为 NCCL,迁移到沐曦环境需要确认通信库与后端的等价映射。
472
+ recommendation: 请复核通信后端选择、初始化参数与多卡拓扑,并在沐曦多卡环境验证集合通信行为。
473
+ references:
474
+ - title: MetaX-MACA cu-bridge
475
+ url: https://gitee.com/metax-maca/cu-bridge
476
+
477
+ - id: MXR-DEPENDENCY-005
478
+ version: 1
479
+ title: 检测 apex 依赖或导入
480
+ category: dependency
481
+ severity: warning
482
+ file_globs: ["**/requirements*.txt", "**/pyproject.toml", "**/setup.cfg", "**/setup.py", "**/*.py"]
483
+ patterns:
484
+ - type: dependency
485
+ name: apex
486
+ - type: dependency
487
+ name: nvidia-apex
488
+ - type: fact
489
+ name: imports_apex
490
+ equals: true
491
+ message: 项目依赖或导入 apex,其混合精度与融合算子包含设备相关原生组件,需要单独确认目标平台版本。
492
+ recommendation: 请复核 apex 版本、算子覆盖与混合精度路径,并在沐曦环境验证导入与核心功能。
493
+ references:
494
+ - title: MetaX-MACA cu-bridge
495
+ url: https://gitee.com/metax-maca/cu-bridge
496
+
497
+ - id: MXR-LIBRARY-001
498
+ version: 1
499
+ title: 识别 cuBLAS / cuDNN / cuFFT / cuSPARSE / cuSOLVER 头文件
500
+ category: library
501
+ severity: warning
502
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
503
+ patterns:
504
+ - type: regex
505
+ expression: '(?m)^\s*#\s*include\s*[<"](?:cublas|cublasLt|cudnn|cufft|cusparse|cusolver)[A-Za-z0-9_-]*\.h[>"]'
506
+ message: 源码直接包含 NVIDIA 数学库头文件,目标环境需要由兼容层或等价库提供相应 API 映射。
507
+ recommendation: 请复核实际使用的库 API 与链接配置,并结合 cu-bridge 当前版本在沐曦环境验证编译与数值行为。
508
+ references:
509
+ - title: MetaX-MACA cu-bridge
510
+ url: https://gitee.com/metax-maca/cu-bridge
511
+ - title: MXMACA performance tuning guide
512
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
513
+
514
+ - id: MXR-RUNTIME-001
515
+ version: 1
516
+ title: 检测 CUDA 数据拷贝与事件 Runtime API
517
+ category: runtime
518
+ severity: info
519
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cc", "**/*.cpp", "**/*.c", "**/*.h", "**/*.hpp"]
520
+ patterns:
521
+ - type: regex
522
+ expression: '\bcuda(?:Memcpy|MemcpyAsync|Memcpy2D|Memcpy2DAsync|MemcpyPeer|MemcpyPeerAsync|Memset|MemsetAsync|EventCreate|EventRecord|EventSynchronize|EventQuery|EventElapsedTime|EventDestroy)\s*\('
523
+ flags: [IGNORECASE]
524
+ message: 源码调用 CUDA 数据拷贝或事件 API,其同步语义与错误处理需要结合目标运行时确认。
525
+ recommendation: 请复核拷贝路径、同步点与事件使用方式,并在沐曦环境验证数据一致性与性能。
526
+ references:
527
+ - title: CUDA Programming Guide
528
+ url: https://docs.nvidia.com/cuda/cuda-programming-guide/
529
+ - title: MetaX-MACA cu-bridge
530
+ url: https://gitee.com/metax-maca/cu-bridge
531
+
532
+ - id: MXR-TEST-001
533
+ version: 1
534
+ title: 检测 CUDA 可用性静默跳过测试
535
+ category: test
536
+ severity: warning
537
+ file_globs: ["**/*.py"]
538
+ patterns:
539
+ - type: regex
540
+ expression: 'skipif\s*\([^\n]*\bnot\s+torch\.cuda\.is_available\(\)'
541
+ - type: regex
542
+ expression: 'skipUnless\s*\([^\n]*torch\.cuda\.is_available\(\)'
543
+ message: 测试在 torch.cuda 不可用时静默跳过,迁移到沐曦环境后可能因环境未配置而跳过,造成验证通过的假象。
544
+ recommendation: 请复核跳过条件,并在真机环境手动运行核心 CUDA 测试以确认实际覆盖。
545
+ references:
546
+ - title: pytest skipif documentation
547
+ url: https://docs.pytest.org/
548
+ - title: unittest skipUnless documentation
549
+ url: https://docs.python.org/3/library/unittest.html
550
+
551
+ - id: MXR-PYTORCH-003
552
+ version: 1
553
+ title: 识别 PyTorch 自动混合精度用法
554
+ category: runtime
555
+ severity: info
556
+ file_globs: ["**/*.py"]
557
+ patterns:
558
+ - type: regex
559
+ expression: '\b(?:torch\.cuda\.amp|torch\.amp)\b|\b(?:autocast|GradScaler)\s*\('
560
+ message: 项目使用 PyTorch 自动混合精度,目标环境的半精度算子支持与缩放行为需要结合 MXMACA 版本验证。
561
+ recommendation: 请复核混合精度路径与缩放器行为,并依据 MXMACA 性能指南在沐曦设备验证精度与性能。
562
+ references:
563
+ - title: MXMACA performance tuning guide
564
+ url: https://gitee.com/metax-maca/mxmaca-performance-tuning-guide
565
+ - title: MetaX-MACA cu-bridge
566
+ url: https://gitee.com/metax-maca/cu-bridge
567
+
568
+ - id: MXR-PTX-001
569
+ version: 1
570
+ title: 检测内联 PTX 汇编
571
+ category: ptx
572
+ severity: blocker
573
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cpp", "**/*.cc", "**/*.h", "**/*.hpp"]
574
+ patterns:
575
+ - type: regex
576
+ expression: '\b(?:__asm__|asm)\s*(?:(?:__volatile__|volatile)\s*)?\(\s*"'
577
+ message: 内联汇编块嵌入的是 NVIDIA 虚拟 ISA(PTX)指令,MXMACA 后端不执行 PTX;这类代码可能固化 NVIDIA 指令语义。
578
+ recommendation: 请逐处复核 asm 块对应的硬件能力,改用目标平台支持的内建函数或等价 C++ 实现,并在沐曦环境验证功能与性能。
579
+ references:
580
+ - title: NVIDIA Inline PTX Assembly
581
+ url: https://docs.nvidia.com/cuda/inline-ptx-assembly/index.html
582
+ - title: MXMACA runtime API guide
583
+ url: https://developer.metax-tech.com/api/client/document/preview/567/C500_RuntimeAPIProgrammingGuide_CN.html
584
+
585
+ - id: MXR-WARP-001
586
+ version: 1
587
+ title: 检测硬编码 32 线程束假设
588
+ category: warp
589
+ severity: blocker
590
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cpp", "**/*.cc", "**/*.h", "**/*.hpp"]
591
+ patterns:
592
+ - type: regex
593
+ expression: '(?m)^(?!\s*(?://|/\*|\*))[^\n]*threadIdx\.x\s*[%/&]\s*(?:31|32)\b'
594
+ - type: regex
595
+ expression: '(?m)^\s*#\s*define\s+(?:WARP_SIZE|WARPSIZE)\s+32\b'
596
+ - type: regex
597
+ expression: '(?m)^(?!\s*(?://|/\*|\*))[^\n]*\b(?:WARP_SIZE|warp_size|WARPSIZE)\s*=\s*32\b'
598
+ message: 代码按 32 线程一组计算 lane 或定义线程束宽度常量;MXMACA 的线程束(wave)宽度为 64,这类算术可能编译通过但结果错位。
599
+ recommendation: 请复核 lane 计算与掩码宽度,改用运行时查询的线程束宽度,并在沐曦环境用最小用例比对结果。
600
+ references:
601
+ - title: MXMACA runtime API guide
602
+ url: https://developer.metax-tech.com/api/client/document/preview/567/C500_RuntimeAPIProgrammingGuide_CN.html
603
+
604
+ - id: MXR-THRUST-001
605
+ version: 1
606
+ title: 识别 Thrust 用法
607
+ category: library
608
+ severity: info
609
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cpp", "**/*.cc", "**/*.h", "**/*.hpp"]
610
+ patterns:
611
+ - type: regex
612
+ expression: '\bthrust::[A-Za-z_]'
613
+ message: 项目使用 Thrust;MXMACA 提供 mcThrust wrapper 并在编译期自动接入,通常无需改动源码,接口对齐情况需按版本确认。
614
+ recommendation: 请复核 Thrust 版本与 mcThrust 的对应关系,并在沐曦环境验证编译与结果。
615
+ references:
616
+ - title: MXMACA AI training manual
617
+ url: https://developer.metax-tech.com/api/client/document/preview/587/C500_AITrainningMaunal_CN.html
618
+
619
+ - id: MXR-CUB-001
620
+ version: 1
621
+ title: 识别 CUB 用法
622
+ category: library
623
+ severity: info
624
+ file_globs: ["**/*.cu", "**/*.cuh", "**/*.cpp", "**/*.cc", "**/*.h", "**/*.hpp"]
625
+ patterns:
626
+ - type: regex
627
+ expression: '\bcub::[A-Za-z_]'
628
+ - type: regex
629
+ expression: '(?m)^\s*#\s*include\s*[<"]cub/[A-Za-z0-9_./]+[>"]'
630
+ message: 项目使用 CUB;MXMACA 提供 mcCUB 且对外 API 接口不变,通常无需改动源码。
631
+ recommendation: 请复核 CUB 版本与 mcCUB 的对应关系,并在沐曦环境验证编译与结果。
632
+ references:
633
+ - title: MXMACA AI training manual
634
+ url: https://developer.metax-tech.com/api/client/document/preview/587/C500_AITrainningMaunal_CN.html
@@ -0,0 +1,4 @@
1
+ schema_version: "1.0"
2
+ ruleset_version: "4"
3
+ rule_files:
4
+ - core.yml