build(windows): add Pixi development environments#1117
Conversation
Provision Python 3.10, MSVC activation, MKL, and optional PyPI CUDA tooling in locked default and cuda environments. Keep release-wheel dependencies out of the contributor environments. Co-Authored-By: OpenAI Codex <codex@openai.com>
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 74c7062949
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| configure-cuda = { cmd = "tools\\activate_windows.bat cmake --preset mkl-cuda -B build/windows-mkl-cuda -DUSE_HPTT=OFF -DHPTT_ENABLE_FINE_TUNE=OFF -DUSE_CUQUANTUM=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF", depends-on = ["setup", "prepare-cuda"] } | ||
| build-cuda = { cmd = "tools\\activate_windows.bat cmake --build build/windows-mkl-cuda --parallel 2", depends-on = ["configure-cuda"] } | ||
|
|
||
| install-python-cuda = { cmd = "tools\\activate_windows.bat python -m pip install --editable . --no-deps --no-build-isolation --verbose --config-settings=build-dir=build/windows-mkl-cuda-editable --config-settings=cmake.args=--preset=mkl-cuda", depends-on = ["setup", "prepare-cuda"] } |
There was a problem hiding this comment.
Prepare CUDA import libraries before editable installation
In a fresh cuda environment, this task depends on prepare-windows, which invokes the preparation script without --cuda; the script then returns before generating the CUDA .lib files. Since the added NVIDIA math-library wheels omit those import libraries, install-python-cuda can fail during CMake configuration/linking unless the user previously ran prepare-cuda or build-cuda. Make this task depend on prepare-cuda instead.
Useful? React with 👍 / 👎.
CUDA 13 device LTO makes nvlink search bin/x64, while the PyPI NVVM wheel installs its DLL below bin/x86_64. Create an idempotent hard-link or copy in the canonical directory during CUDA preparation. Co-Authored-By: OpenAI Codex <codex@openai.com>
Base and stack
#1116 is now a standalone PR directly on
master. This downstream PR is based oncodex/windows-msvc-cuda-stack, an integration anchor that preserves #1109, #1110, and the same #1116 patch while those PRs are unmerged:#1109 → #1110 → codex/windows-msvc-cuda-stack → #1117 → #1118 → #1119 → #1113This PR contains only Windows development tooling and documentation.
Summary
defaultandcudaenvironments with Python 3.10, MSVC 2022, Ninja, MKL, and contributor tools;pyproject.tomldependencies;bin/x64NVVM layout for device LTO when the PyPI wheel installs the DLL underbin/x86_64;PATH.Linux and macOS
The Pixi workspace targets only
win-64; source builds on Linux and macOS are unchanged.Validation
defaultandcudalock installs pass;prepare-cudacreates the canonicalbin/x64/nvvm64_40_0.dllalias andcheck-cuda-layoutvalidates it;Part of #1114.