Skip to content

Commit b3eed5a

Browse files
committed
docs: 「到得了」在每一行上不是同一个断言,写明差别
平台表里一行写「是」,读起来很容易被当成「跑通了」。三个平台上真的**跑过**的只有 rules-spirv;Windows 上 CUDA 与 SYCL 那条 lane 是**装上并编译过** —— 组件装得上、注册 出程序、规则为那个宿主编译过,但还没有任何一台 runner 在那里端到端驱动过 nvcc 或 dpcpp。 一份规范文档里,这个差别不该留给读者去推。中英双份。
1 parent 42d0cee commit b3eed5a

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

docs/20-heterogeneous-builds.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,16 @@ had them, and none of the three had been visible to a Linux build.
531531
| `rules-hip` | yes | no | no | the NVIDIA-platform header package is published for Linux alone; the AMD platform needs a ROCm runtime this ecosystem does not publish anywhere |
532532
| `rules-ascendc` | yes | no | no | the CANN toolkit is published for Linux alone |
533533

534+
**"Reaches" is not the same claim on every row, and the difference is stated
535+
rather than left to be inferred.** What has been RUN on all three platforms is
536+
`rules-spirv`: the shader compiler produces both SPIR-V stages and the artifact
537+
links, and on Linux it also renders and the pixels are compared against a
538+
software rasteriser. What has been INSTALLED and COMPILED on Windows is the
539+
CUDA and SYCL lane: the components install and register their programs, and the
540+
rules compile for that host, but no CI runner has yet driven `nvcc` or `dpcpp`
541+
there end to end. A row saying "yes" therefore means the three conditions above
542+
hold; it does not mean a runner has executed that lane.
543+
534544
**A vendor that does not publish for a platform ends the question.** No amount
535545
of engine work makes a CUDA toolkit exist for macOS. What the ecosystem can do
536546
is state the boundary at the point where a build asks to cross it, which is

docs/zh/20-heterogeneous-builds.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,13 @@ CUDA 入口点的内联包装,所以目标文件链接的是 CUDA 运行时,机
441441
| `rules-hip` |||| NVIDIA 平台的头文件包只为 Linux 发布;AMD 平台要一个本生态在任何平台上都还没发布的 ROCm 运行时 |
442442
| `rules-ascendc` |||| CANN 工具包只为 Linux 发布 |
443443

444+
**「到得了」在每一行上不是同一个断言,而这个差别写出来而不是留给人推。** 三个平台上
445+
真的**跑过**的是 `rules-spirv`:着色器编译器产出两个 SPIR-V 阶段、产物链接得上,而
446+
Linux 上还渲染出来并把像素与一个软件光栅器逐字节比对。Windows 上**装上并编译过**的是
447+
CUDA 与 SYCL 那条 lane:组件装得上、注册出程序,规则也为那个宿主编译过,但还没有任何
448+
一台 runner 在那里端到端驱动过 `nvcc``dpcpp`。所以一行写「是」的意思是上面三个条件
449+
成立,不是说有 runner 执行过那条 lane。
450+
444451
**厂商没有为某个平台发布,这个问题就到此为止。** 再多的引擎工作也变不出一个 macOS 的
445452
CUDA 工具包。生态能做的是在一次构建请求跨过那条边界的地方把它说出来,而每条 lane 正是
446453
这样做的:SYCL 规则在 Windows 上拒绝一个提前编译的 NVIDIA 目标,并点名决定这件事的那

0 commit comments

Comments
 (0)