diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml
index 635118b8..bcfc9f37 100755
--- a/.azure-pipelines/azure-pipelines-osx.yml
+++ b/.azure-pipelines/azure-pipelines-osx.yml
@@ -8,50 +8,50 @@ jobs:
vmImage: macOS-13
strategy:
matrix:
- osx_64_blas_implgenericnumpy2.0python3.10.____cpython:
- CONFIG: osx_64_blas_implgenericnumpy2.0python3.10.____cpython
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython:
+ CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implgenericnumpy2.0python3.11.____cpython:
- CONFIG: osx_64_blas_implgenericnumpy2.0python3.11.____cpython
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython:
+ CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implgenericnumpy2.0python3.12.____cpython:
- CONFIG: osx_64_blas_implgenericnumpy2.0python3.12.____cpython
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython:
+ CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implgenericnumpy2.0python3.9.____cpython:
- CONFIG: osx_64_blas_implgenericnumpy2.0python3.9.____cpython
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython:
+ CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implgenericnumpy2python3.13.____cp313:
- CONFIG: osx_64_blas_implgenericnumpy2python3.13.____cp313
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313:
+ CONFIG: osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implmklnumpy2.0python3.10.____cpython:
- CONFIG: osx_64_blas_implmklnumpy2.0python3.10.____cpython
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython:
+ CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implmklnumpy2.0python3.11.____cpython:
- CONFIG: osx_64_blas_implmklnumpy2.0python3.11.____cpython
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython:
+ CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implmklnumpy2.0python3.12.____cpython:
- CONFIG: osx_64_blas_implmklnumpy2.0python3.12.____cpython
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython:
+ CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implmklnumpy2.0python3.9.____cpython:
- CONFIG: osx_64_blas_implmklnumpy2.0python3.9.____cpython
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython:
+ CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython
UPLOAD_PACKAGES: 'True'
- osx_64_blas_implmklnumpy2python3.13.____cp313:
- CONFIG: osx_64_blas_implmklnumpy2python3.13.____cp313
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313:
+ CONFIG: osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313
UPLOAD_PACKAGES: 'True'
- osx_arm64_numpy2.0python3.10.____cpython:
- CONFIG: osx_arm64_numpy2.0python3.10.____cpython
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython:
+ CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_numpy2.0python3.11.____cpython:
- CONFIG: osx_arm64_numpy2.0python3.11.____cpython
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython:
+ CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_numpy2.0python3.12.____cpython:
- CONFIG: osx_arm64_numpy2.0python3.12.____cpython
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython:
+ CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_numpy2.0python3.9.____cpython:
- CONFIG: osx_arm64_numpy2.0python3.9.____cpython
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython:
+ CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython
UPLOAD_PACKAGES: 'True'
- osx_arm64_numpy2python3.13.____cp313:
- CONFIG: osx_arm64_numpy2python3.13.____cp313
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313:
+ CONFIG: osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313
UPLOAD_PACKAGES: 'True'
timeoutInMinutes: 360
variables: {}
diff --git a/.ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
rename to .ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
index 62fc7431..45418ed9 100644
--- a/.ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
+++ b/.ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml b/.ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
rename to .ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
index a86e20a3..18215614 100644
--- a/.ci_support/linux_64_blas_implgenericc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
+++ b/.ci_support/linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
rename to .ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
index 740788e0..77351ad7 100644
--- a/.ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
+++ b/.ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml b/.ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
rename to .ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
index 8583713e..aa913c62 100644
--- a/.ci_support/linux_64_blas_implmklc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
+++ b/.ci_support/linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
rename to .ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
index be0b8294..d4635f05 100644
--- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml
+++ b/.ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
similarity index 93%
rename from .ci_support/linux_aarch64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
rename to .ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
index 6319cc58..a7d7b659 100644
--- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13.yaml
+++ b/.ci_support/linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse.yaml
@@ -28,8 +28,12 @@ docker_image:
- quay.io/condaforge/linux-anvil-x86_64:alma9
github_actions_labels:
- cirun-openstack-gpu-2xlarge
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -70,5 +74,7 @@ zip_keys:
- cuda_compiler
- cuda_compiler_version
- docker_image
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.10.____cpython.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_64_blas_implgenericnumpy2.0python3.10.____cpython.yaml
rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
index 56bcdea7..66656f42 100644
--- a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.11.____cpython.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_64_blas_implgenericnumpy2.0python3.11.____cpython.yaml
rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
index 690b6c4c..04aefc77 100644
--- a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.12.____cpython.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_64_blas_implgenericnumpy2.0python3.12.____cpython.yaml
rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
index 6b011ee8..cbbe6612 100644
--- a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.9.____cpython.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_64_blas_implgenericnumpy2.0python3.9.____cpython.yaml
rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
index f58ea649..02a4aa43 100644
--- a/.ci_support/osx_64_blas_implgenericnumpy2.0python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implgenericnumpy2python3.13.____cp313.yaml b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implgenericnumpy2python3.13.____cp313.yaml
rename to .ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
index c8d47199..2aef5047 100644
--- a/.ci_support/osx_64_blas_implgenericnumpy2python3.13.____cp313.yaml
+++ b/.ci_support/osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implmklnumpy2.0python3.10.____cpython.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implmklnumpy2.0python3.10.____cpython.yaml
rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
index c26b6eae..02355229 100644
--- a/.ci_support/osx_64_blas_implmklnumpy2.0python3.10.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implmklnumpy2.0python3.11.____cpython.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implmklnumpy2.0python3.11.____cpython.yaml
rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
index 83806216..b57aaf09 100644
--- a/.ci_support/osx_64_blas_implmklnumpy2.0python3.11.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implmklnumpy2.0python3.12.____cpython.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implmklnumpy2.0python3.12.____cpython.yaml
rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
index c21661e2..d549ae43 100644
--- a/.ci_support/osx_64_blas_implmklnumpy2.0python3.12.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implmklnumpy2.0python3.9.____cpython.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implmklnumpy2.0python3.9.____cpython.yaml
rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
index bd9404df..c5705b30 100644
--- a/.ci_support/osx_64_blas_implmklnumpy2.0python3.9.____cpython.yaml
+++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_64_blas_implmklnumpy2python3.13.____cp313.yaml b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
similarity index 91%
rename from .ci_support/osx_64_blas_implmklnumpy2python3.13.____cp313.yaml
rename to .ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
index 87b416c9..7c8113b3 100644
--- a/.ci_support/osx_64_blas_implmklnumpy2python3.13.____cp313.yaml
+++ b/.ci_support/osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_arm64_numpy2.0python3.10.____cpython.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_arm64_numpy2.0python3.10.____cpython.yaml
rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
index bdc21e03..4ca2b50c 100644
--- a/.ci_support/osx_arm64_numpy2.0python3.10.____cpython.yaml
+++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_arm64_numpy2.0python3.11.____cpython.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_arm64_numpy2.0python3.11.____cpython.yaml
rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
index 2e6796f0..17f951bb 100644
--- a/.ci_support/osx_arm64_numpy2.0python3.11.____cpython.yaml
+++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_arm64_numpy2.0python3.12.____cpython.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_arm64_numpy2.0python3.12.____cpython.yaml
rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
index 7e42f0eb..793a8225 100644
--- a/.ci_support/osx_arm64_numpy2.0python3.12.____cpython.yaml
+++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_arm64_numpy2.0python3.9.____cpython.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
similarity index 92%
rename from .ci_support/osx_arm64_numpy2.0python3.9.____cpython.yaml
rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
index d5c12eba..0ec714e4 100644
--- a/.ci_support/osx_arm64_numpy2.0python3.9.____cpython.yaml
+++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/osx_arm64_numpy2python3.13.____cp313.yaml b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
similarity index 91%
rename from .ci_support/osx_arm64_numpy2python3.13.____cp313.yaml
rename to .ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
index eb0525ef..abf491d5 100644
--- a/.ci_support/osx_arm64_numpy2python3.13.____cp313.yaml
+++ b/.ci_support/osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313.yaml
@@ -24,8 +24,12 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
+is_rc:
+- 'False'
libabseil:
- '20240722'
+libblas:
+- 3.9 *netlib
libcblas:
- 3.9 *netlib
liblapack:
@@ -57,5 +61,7 @@ target_platform:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
+- - channel_targets
+ - is_rc
- - python
- numpy
diff --git a/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNoneis_rcFalse.yaml b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNoneis_rcFalse.yaml
new file mode 100644
index 00000000..48368212
--- /dev/null
+++ b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNoneis_rcFalse.yaml
@@ -0,0 +1,59 @@
+blas_impl:
+- mkl
+c_compiler:
+- vs2019
+c_stdlib:
+- vs
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- None
+cuda_compiler_version:
+- None
+cudnn:
+- '9'
+cxx_compiler:
+- vs2019
+github_actions_labels:
+- cirun-azure-windows-2xlarge
+is_rc:
+- 'False'
+libabseil:
+- '20240722'
+libprotobuf:
+- 5.28.3
+libtorch:
+- '2.4'
+megabuild:
+- 'true'
+mkl:
+- '2024'
+numpy:
+- '2.0'
+- '2.0'
+- '2.0'
+- '2'
+- '2.0'
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.10.* *_cpython
+- 3.11.* *_cpython
+- 3.12.* *_cpython
+- 3.13.* *_cp313
+- 3.9.* *_cpython
+pytorch:
+- '2.4'
+target_platform:
+- win-64
+zip_keys:
+- - channel_targets
+ - is_rc
+- - cuda_compiler
+ - cuda_compiler_version
+- - python
+ - numpy
diff --git a/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6is_rcFalse.yaml b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6is_rcFalse.yaml
new file mode 100644
index 00000000..c0402bfc
--- /dev/null
+++ b/.ci_support/win_64_channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6is_rcFalse.yaml
@@ -0,0 +1,59 @@
+blas_impl:
+- mkl
+c_compiler:
+- vs2019
+c_stdlib:
+- vs
+channel_sources:
+- conda-forge
+channel_targets:
+- conda-forge main
+cuda_compiler:
+- cuda-nvcc
+cuda_compiler_version:
+- '12.6'
+cudnn:
+- '9'
+cxx_compiler:
+- vs2019
+github_actions_labels:
+- cirun-azure-windows-2xlarge
+is_rc:
+- 'False'
+libabseil:
+- '20240722'
+libprotobuf:
+- 5.28.3
+libtorch:
+- '2.4'
+megabuild:
+- 'true'
+mkl:
+- '2024'
+numpy:
+- '2.0'
+- '2.0'
+- '2.0'
+- '2'
+- '2.0'
+pin_run_as_build:
+ python:
+ min_pin: x.x
+ max_pin: x.x
+python:
+- 3.10.* *_cpython
+- 3.11.* *_cpython
+- 3.12.* *_cpython
+- 3.13.* *_cp313
+- 3.9.* *_cpython
+pytorch:
+- '2.4'
+target_platform:
+- win-64
+zip_keys:
+- - channel_targets
+ - is_rc
+- - cuda_compiler
+ - cuda_compiler_version
+- - python
+ - numpy
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 2a812a2b..679a206f 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1 @@
-* @Tobias-Fischer @beckermr @benjaminrwilson @h-vetinari @hmaarrfk @jeongseok-meta @sodre
\ No newline at end of file
+* @Tobias-Fischer @baszalmstra @beckermr @benjaminrwilson @h-vetinari @hmaarrfk @jeongseok-meta @sodre
\ No newline at end of file
diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml
index a336a7e2..40a005a9 100644
--- a/.github/workflows/conda-build.yml
+++ b/.github/workflows/conda-build.yml
@@ -21,42 +21,50 @@ jobs:
fail-fast: false
matrix:
include:
- - CONFIG: linux_64_blas_implgenericc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13
+ - CONFIG: linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_compiler_h55a08dafba', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_compiler_hb59e174a3e', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- - CONFIG: linux_64_blas_implgenericc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13
+ - CONFIG: linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_compiler_hcea8f4d73b', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implgenericc_compiler_h5e2cde8be1', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- - CONFIG: linux_64_blas_implmklc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13
+ - CONFIG: linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_compiler_ver_h3b58d95c2f', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_compiler_ver_h0b96eb68c6', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- - CONFIG: linux_64_blas_implmklc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13
+ - CONFIG: linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_compiler_ver_h980a1415dd', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_64_blas_implmklc_compiler_ver_hc39dedf959', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- - CONFIG: linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13
+ - CONFIG: linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_h048947eff7', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_h352ed12235', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
- - CONFIG: linux_aarch64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13
+ - CONFIG: linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse
UPLOAD_PACKAGES: True
os: ubuntu
- runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_h50dc5357dd', 'linux', 'x64', 'self-hosted']
+ runs_on: ['cirun-openstack-gpu-2xlarge--${{ github.run_id }}-linux_aarch64_c_compiler_version13c_h94771c6c09', 'linux', 'x64', 'self-hosted']
DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
CONDA_FORGE_DOCKER_RUN_ARGS: "--gpus all"
+ - CONFIG: win_64_channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNoneis_rcFalse
+ UPLOAD_PACKAGES: True
+ os: windows
+ runs_on: ['cirun-azure-windows-2xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_m_h0b759d4e63', 'windows', 'x64', 'self-hosted']
+ - CONFIG: win_64_channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6is_rcFalse
+ UPLOAD_PACKAGES: True
+ os: windows
+ runs_on: ['cirun-azure-windows-2xlarge--${{ github.run_id }}-win_64_channel_targetsconda-forge_m_h790f30616b', 'windows', 'x64', 'self-hosted']
steps:
- name: Checkout code
diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat
new file mode 100755
index 00000000..283e1438
--- /dev/null
+++ b/.scripts/run_win_build.bat
@@ -0,0 +1,151 @@
+:: PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here
+:: will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent
+:: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also
+:: benefit from the improvement.
+
+:: INPUTS (required environment variables)
+:: CONFIG: name of the .ci_support/*.yaml file for this job
+:: CI: azure, github_actions, or unset
+:: MINIFORGE_HOME: where to install the base conda environment
+:: UPLOAD_PACKAGES: true or false
+:: UPLOAD_ON_BRANCH: true or false
+
+setlocal enableextensions enabledelayedexpansion
+
+FOR %%A IN ("%~dp0.") DO SET "REPO_ROOT=%%~dpA"
+if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3"
+:: Remove trailing backslash, if present
+if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%"
+call :start_group "Provisioning base env with micromamba"
+set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%"
+set "MICROMAMBA_VERSION=1.5.10-0"
+set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64"
+set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%"
+set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe"
+
+echo Downloading micromamba %MICROMAMBA_VERSION%
+if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%"
+certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%"
+if !errorlevel! neq 0 exit /b !errorlevel!
+
+echo Creating environment
+call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^
+ --channel conda-forge ^
+ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+if !errorlevel! neq 0 exit /b !errorlevel!
+echo Removing %MAMBA_ROOT_PREFIX%
+del /S /Q "%MAMBA_ROOT_PREFIX%" >nul
+del /S /Q "%MICROMAMBA_TMPDIR%" >nul
+call :end_group
+
+call :start_group "Configuring conda"
+
+:: Activate the base conda environment
+echo Activating environment
+call "%MINIFORGE_HOME%\Scripts\activate.bat"
+:: Configure the solver
+set "CONDA_SOLVER=libmamba"
+if !errorlevel! neq 0 exit /b !errorlevel!
+set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1"
+
+:: Set basic configuration
+echo Setting up configuration
+setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml
+if !errorlevel! neq 0 exit /b !errorlevel!
+echo Running build setup
+CALL run_conda_forge_build_setup
+
+
+if !errorlevel! neq 0 exit /b !errorlevel!
+
+if EXIST LICENSE.txt (
+ echo Copying feedstock license
+ copy LICENSE.txt "recipe\\recipe-scripts-license.txt"
+)
+if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] (
+ if [%CROSSCOMPILING_EMULATOR%] == [] (
+ set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test"
+ )
+)
+
+if NOT [%flow_run_id%] == [] (
+ set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%"
+)
+
+call :end_group
+
+:: Build the recipe
+echo Building recipe
+conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS%
+if !errorlevel! neq 0 exit /b !errorlevel!
+
+call :start_group "Inspecting artifacts"
+:: inspect_artifacts was only added in conda-forge-ci-setup 4.9.4
+WHERE inspect_artifacts >nul 2>nul && inspect_artifacts --recipe-dir ".\recipe" -m .ci_support\%CONFIG%.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4"
+call :end_group
+
+:: Prepare some environment variables for the upload step
+if /i "%CI%" == "github_actions" (
+ set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%"
+ set "GIT_BRANCH=%GITHUB_REF:refs/heads/=%"
+ if /i "%GITHUB_EVENT_NAME%" == "pull_request" (
+ set "IS_PR_BUILD=True"
+ ) else (
+ set "IS_PR_BUILD=False"
+ )
+ set "TEMP=%RUNNER_TEMP%"
+)
+if /i "%CI%" == "azure" (
+ set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%"
+ set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%"
+ if /i "%BUILD_REASON%" == "PullRequest" (
+ set "IS_PR_BUILD=True"
+ ) else (
+ set "IS_PR_BUILD=False"
+ )
+ set "TEMP=%UPLOAD_TEMP%"
+)
+
+:: Validate
+call :start_group "Validating outputs"
+validate_recipe_outputs "%FEEDSTOCK_NAME%"
+if !errorlevel! neq 0 exit /b !errorlevel!
+call :end_group
+
+if /i "%UPLOAD_PACKAGES%" == "true" (
+ if /i "%IS_PR_BUILD%" == "false" (
+ call :start_group "Uploading packages"
+ if not exist "%TEMP%\" md "%TEMP%"
+ set "TMP=%TEMP%"
+ upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml
+ if !errorlevel! neq 0 exit /b !errorlevel!
+ call :end_group
+ )
+)
+
+exit
+
+:: Logging subroutines
+
+:start_group
+if /i "%CI%" == "github_actions" (
+ echo ::group::%~1
+ exit /b
+)
+if /i "%CI%" == "azure" (
+ echo ##[group]%~1
+ exit /b
+)
+echo %~1
+exit /b
+
+:end_group
+if /i "%CI%" == "github_actions" (
+ echo ::endgroup::
+ exit /b
+)
+if /i "%CI%" == "azure" (
+ echo ##[endgroup]
+ exit /b
+)
+exit /b
\ No newline at end of file
diff --git a/README.md b/README.md
index c0abad1c..0047ae41 100644
--- a/README.md
+++ b/README.md
@@ -29,150 +29,164 @@ Current build status
Variant | Status |
- linux_64_blas_implgenericc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 |
+ linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse |
-
+
|
- linux_64_blas_implgenericc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13 |
+ linux_64_blas_implgenericc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse |
-
+
|
- linux_64_blas_implmklc_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 |
+ linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse |
-
+
|
- linux_64_blas_implmklc_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13 |
+ linux_64_blas_implmklc_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse |
-
+
|
- linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 |
+ linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13is_rcFalse |
-
+
|
- linux_aarch64_c_compiler_version13cuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13 |
+ linux_aarch64_c_compiler_version13channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6cxx_compiler_version13is_rcFalse |
-
+
|
- osx_64_blas_implgenericnumpy2.0python3.10.____cpython |
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython |
-
+
|
- osx_64_blas_implgenericnumpy2.0python3.11.____cpython |
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython |
-
+
|
- osx_64_blas_implgenericnumpy2.0python3.12.____cpython |
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython |
-
+
|
- osx_64_blas_implgenericnumpy2.0python3.9.____cpython |
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython |
-
+
|
- osx_64_blas_implgenericnumpy2python3.13.____cp313 |
+ osx_64_blas_implgenericchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313 |
-
+
|
- osx_64_blas_implmklnumpy2.0python3.10.____cpython |
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython |
-
+
|
- osx_64_blas_implmklnumpy2.0python3.11.____cpython |
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython |
-
+
|
- osx_64_blas_implmklnumpy2.0python3.12.____cpython |
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython |
-
+
|
- osx_64_blas_implmklnumpy2.0python3.9.____cpython |
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython |
-
+
|
- osx_64_blas_implmklnumpy2python3.13.____cp313 |
+ osx_64_blas_implmklchannel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313 |
-
+
|
- osx_arm64_numpy2.0python3.10.____cpython |
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.10.____cpython |
-
+
|
- osx_arm64_numpy2.0python3.11.____cpython |
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.11.____cpython |
-
+
|
- osx_arm64_numpy2.0python3.12.____cpython |
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.12.____cpython |
-
+
|
- osx_arm64_numpy2.0python3.9.____cpython |
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2.0python3.9.____cpython |
-
+
|
- osx_arm64_numpy2python3.13.____cp313 |
+ osx_arm64_channel_targetsconda-forge_mainis_rcFalsenumpy2python3.13.____cp313 |
-
+
+
+ |
+
+ win_64_channel_targetsconda-forge_maincuda_compilerNonecuda_compiler_versionNoneis_rcFalse |
+
+
+
+
+ |
+
+ win_64_channel_targetsconda-forge_maincuda_compilercuda-nvcccuda_compiler_version12.6is_rcFalse |
+
+
+
|
@@ -308,9 +322,11 @@ Feedstock Maintainers
=====================
* [@Tobias-Fischer](https://github.com/Tobias-Fischer/)
+* [@baszalmstra](https://github.com/baszalmstra/)
* [@beckermr](https://github.com/beckermr/)
* [@benjaminrwilson](https://github.com/benjaminrwilson/)
* [@h-vetinari](https://github.com/h-vetinari/)
* [@hmaarrfk](https://github.com/hmaarrfk/)
* [@jeongseok-meta](https://github.com/jeongseok-meta/)
* [@sodre](https://github.com/sodre/)
+
diff --git a/conda-forge.yml b/conda-forge.yml
index 56c3585f..47ae951d 100644
--- a/conda-forge.yml
+++ b/conda-forge.yml
@@ -2,6 +2,9 @@ azure:
free_disk_space: true
settings_linux:
timeoutInMinutes: 1
+ settings_win:
+ variables:
+ CONDA_BLD_PATH: C:\\bld\\
build_platform:
linux_aarch64: linux_64
osx_arm64: osx_64
@@ -20,4 +23,5 @@ github_actions:
provider:
linux_64: github_actions
linux_aarch64: azure
+ win_64: github_actions
test: native_and_emulated
diff --git a/recipe/README.md b/recipe/README.md
index 06d02286..75ac4032 100644
--- a/recipe/README.md
+++ b/recipe/README.md
@@ -80,6 +80,7 @@ of 2024-11-28:
| Package | Upstream | Recipe | Conda-forge | Source |
|-----------|----------------|--------|-------------|-------------------------------------|
| cuda | 11.8/12.1/12.4 | 12.6 | 12.6 | `.ci/docker/build.sh` |
+| cuda-cupti| 12.4.127 | | 12.6.80 | `.github/scripts/generate_binary_build_matrix.py` |
| cusparselt| 0.6.2.3+others | | 0.6.3.2 | `.ci/docker/common/install_cuda.sh` |
| libcudss | 0.3.0.9 | | 0.4.0.2 | `.ci/docker/common/install_cudss.sh`|
| magma | 2.6.1 | | 2.8.0 | `.ci/docker/common/instal_magma.sh` |
diff --git a/recipe/bld.bat b/recipe/bld.bat
index 30cc5d4f..cc124409 100644
--- a/recipe/bld.bat
+++ b/recipe/bld.bat
@@ -1,47 +1,221 @@
@echo On
+setlocal enabledelayedexpansion
+
+REM remove pyproject.toml to avoid installing deps from pip
+if EXIST pyproject.toml DEL pyproject.toml
set TH_BINARY_BUILD=1
set PYTORCH_BUILD_VERSION=%PKG_VERSION%
-set PYTORCH_BUILD_NUMBER=%PKG_BUILDNUM%
+:: Always pass 0 to avoid appending ".post" to version string.
+:: https://github.com/conda-forge/pytorch-cpu-feedstock/issues/315
+set PYTORCH_BUILD_NUMBER=0
+
+REM I don't know where this folder comes from, but it's interfering with the build in osx-64
+if EXIST %PREFIX%\git RD /S /Q %PREFIX%\git
-if "%pytorch_variant%" == "gpu" (
- set build_with_cuda=1
- set desired_cuda=%CUDA_VERSION:~0,-1%.%CUDA_VERSION:~-1,1%
+@REM Setup BLAS
+if "%blas_impl%" == "generic" (
+ REM Fake openblas
+ SET BLAS=OpenBLAS
+ SET OpenBLAS_HOME=%LIBRARY_PREFIX%
) else (
- set build_with_cuda=
- set USE_CUDA=0
+ SET BLAS=MKL
)
-if "%build_with_cuda%" == "" goto cuda_flags_end
+@REM TODO(baszalmstra): Figure out if we need these flags
+SET "USE_NUMA=0"
+SET "USE_ITT=0"
-set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v%desired_cuda%
-set CUDA_BIN_PATH=%CUDA_PATH%\bin
-set TORCH_CUDA_ARCH_LIST=5.0;6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0+PTX
-set TORCH_NVCC_FLAGS=-Xfatbin -compress-all
+@REM KINETO seems to require CUPTI and will look quite hard for it.
+@REM CUPTI seems to cause trouble when users install a version of
+@REM cudatoolkit different than the one specified at compile time.
+@REM https://github.com/conda-forge/pytorch-cpu-feedstock/issues/135
+set "USE_KINETO=OFF"
-:cuda_flags_end
+if "%PKG_NAME%" == "pytorch" (
+ set "PIP_ACTION=install"
+ :: We build libtorch for a specific python version.
+ :: This ensures its only build once. However, when that version changes
+ :: we need to make sure to update that here.
+ :: Get the full python version string
+ for /f "tokens=2" %%a in ('python --version 2^>^&1') do set PY_VERSION_FULL=%%a
-set DISTUTILS_USE_SDK=1
+ :: Replace Python312 or python312 with ie Python311 or python311
+ sed "s/\([Pp]ython\)312/\1%CONDA_PY%/g" build/CMakeCache.txt.orig > build/CMakeCache.txt
-set CMAKE_INCLUDE_PATH=%LIBRARY_PREFIX%\include
-set LIB=%LIBRARY_PREFIX%\lib;%LIB%
+ :: Replace version string v3.12.8() with ie v3.11.11()
+ sed -i.bak -E "s/v3\.12\.[0-9]+/v%PY_VERSION_FULL%/g" build/CMakeCache.txt
+
+ :: Replace interpreter properties Python;3;12;8;64 with ie Python;3;11;11;64
+ sed -i.bak -E "s/Python;3;12;[0-9]+;64/Python;%PY_VERSION_FULL:.=;%;64/g" build/CMakeCache.txt
+
+ :: Replace cp312-win_amd64 with ie cp311-win_amd64
+ sed -i.bak "s/cp312/cp%CONDA_PY%/g" build/CMakeCache.txt
+
+ @REM We use a fan-out build to avoid the long rebuild of libtorch
+ @REM However, the location of the numpy headers changes between python 3.8
+ @REM and 3.9+ since numpy 2.0 only exists for 3.9+
+ if "%PY_VER%" == "3.8" (
+ sed -i.bak "s#numpy\\\\_core\\\\include#numpy\\\\core\\\\include#g" build/CMakeCache.txt
+ ) else (
+ sed -i.bak "s#numpy\\\\core\\\\include#numpy\\\\_core\\\\include#g" build/CMakeCache.txt
+ )
+
+) else (
+ @REM For the main script we just build a wheel for so that the C++/CUDA
+ @REM parts are built. Then they are reused in each python version.
+ set "PIP_ACTION=wheel"
+)
-IF "%build_with_cuda%" == "" goto cuda_end
+if not "%cuda_compiler_version%" == "None" (
+ set USE_CUDA=1
-set MAGMA_HOME=%LIBRARY_PREFIX%
+ REM set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v%desired_cuda%
+ REM set CUDA_BIN_PATH=%CUDA_PATH%\bin
-set "PATH=%CUDA_BIN_PATH%;%PATH%"
+ set TORCH_CUDA_ARCH_LIST=5.0;6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0+PTX
-set CUDNN_INCLUDE_DIR=%LIBRARY_PREFIX%\include
+ set TORCH_NVCC_FLAGS=-Xfatbin -compress-all
-:cuda_end
+ set USE_STATIC_CUDNN=0
+ set MAGMA_HOME=%PREFIX%
+
+ REM NCCL is not available on windows
+ set USE_NCCL=0
+ set USE_STATIC_NCCL=0
+
+ set MAGMA_HOME=%LIBRARY_PREFIX%
+
+ set "PATH=%CUDA_BIN_PATH%;%PATH%"
+
+ set CUDNN_INCLUDE_DIR=%LIBRARY_PREFIX%\include
+
+) else (
+ set USE_CUDA=0
+ REM On windows, env vars are case-insensitive and setup.py
+ REM passes all env vars starting with CUDA_*, CMAKE_* to
+ REM to cmake
+ set "cuda_compiler_version="
+ set "cuda_compiler="
+ set "CUDA_VERSION="
+
+ @REM MKLDNN is an Apache-2.0 licensed library for DNNs and is used
+ @REM for CPU builds. Not to be confused with MKL.
+ set "USE_MKLDNN=1"
+)
+
+set DISTUTILS_USE_SDK=1
+set CMAKE_INCLUDE_PATH=%LIBRARY_PREFIX%\include
+set LIB=%LIBRARY_PREFIX%\lib;%LIB%
+
+@REM CMake configuration
set CMAKE_GENERATOR=Ninja
+set "CMAKE_GENERATOR_TOOLSET="
set "CMAKE_GENERATOR_PLATFORM="
set "CMAKE_PREFIX_PATH=%LIBRARY_PREFIX%"
+set "CMAKE_INCLUDE_PATH=%LIBRARY_INC%"
+set "CMAKE_LIBRARY_PATH=%LIBRARY_LIB%"
+set "CMAKE_BUILD_TYPE=Release"
+:: This is so that CMake finds the environment's Python, not another one
+set Python_EXECUTABLE=%PYTHON%
+set Python3_EXECUTABLE=%PYTHON%
+
+set "INSTALL_TEST=0"
+set "BUILD_TEST=0"
+
set "libuv_ROOT=%LIBRARY_PREFIX%"
-set "USE_SYSTEM_SLEEF=OFF"
+set "USE_SYSTEM_SLEEF=ON"
+
+@REM uncomment to debug cmake build
+@REM set "CMAKE_VERBOSE_MAKEFILE=1"
+
set "BUILD_CUSTOM_PROTOBUF=OFF"
+set "USE_LITE_PROTO=ON"
+
+@REM TODO(baszalmstra): There are linker errors because of mixing Intel OpenMP (iomp) and Microsoft OpenMP (vcomp)
+set "USE_OPENMP=OFF"
+
+@REM The activation script for cuda-nvcc doesnt add the CUDA_CFLAGS on windows.
+@REM Therefor we do this manually here. See:
+@REM https://github.com/conda-forge/cuda-nvcc-feedstock/issues/47
+echo "CUDA_CFLAGS=%CUDA_CFLAGS%"
+set "CUDA_CFLAGS=-I%PREFIX%/Library/include -I%BUILD_PREFIX%/Library/include"
+set "CFLAGS=%CFLAGS% %CUDA_CFLAGS%"
+set "CPPFLAGS=%CPPFLAGS% %CUDA_CFLAGS%"
+set "CXXFLAGS=%CXXFLAGS% %CUDA_CFLAGS%"
+echo "CUDA_CFLAGS=%CUDA_CFLAGS%"
+echo "CXXFLAGS=%CXXFLAGS%"
+
+@REM Configure sccache
+set "CMAKE_C_COMPILER_LAUNCHER=sccache"
+set "CMAKE_CXX_COMPILER_LAUNCHER=sccache"
+set "CMAKE_CUDA_COMPILER_LAUNCHER=sccache"
+
+sccache --stop-server
+sccache --start-server
+sccache --zero-stats
-%PYTHON% -m pip install . --no-deps -vv
+@REM Clear the build from any remaining artifacts. We use sccache to avoid recompiling similar code.
+cmake --build build --target clean
+
+%PYTHON% -m pip %PIP_ACTION% . --no-build-isolation --no-deps -vvv --no-clean
if errorlevel 1 exit /b 1
+
+@REM Here we split the build into two parts.
+@REM
+@REM Both the packages libtorch and pytorch use this same build script.
+@REM - The output of the libtorch package should just contain the binaries that are
+@REM not related to Python.
+@REM - The output of the pytorch package contains everything except for the
+@REM non-python specific binaries.
+@REM
+@REM This ensures that a user can quickly switch between python versions without the
+@REM need to redownload all the large CUDA binaries.
+
+if "%PKG_NAME%" == "libtorch" (
+ @REM Extract the compiled wheel into a temporary directory
+ if not exist "%SRC_DIR%/dist" mkdir %SRC_DIR%/dist
+ pushd %SRC_DIR%/dist
+ for %%f in (../torch-*.whl) do (
+ wheel unpack %%f
+ )
+
+ @REM Navigate into the unpacked wheel
+ pushd torch-*
+
+ @REM Move the binaries into the packages site-package directory
+ robocopy /NP /NFL /NDL /NJH /E torch\bin %SP_DIR%\torch\bin\
+ robocopy /NP /NFL /NDL /NJH /E torch\lib %SP_DIR%\torch\lib\
+ robocopy /NP /NFL /NDL /NJH /E torch\share %SP_DIR%\torch\share\
+ for %%f in (ATen caffe2 torch c10) do (
+ robocopy /NP /NFL /NDL /NJH /E torch\include\%%f %SP_DIR%\torch\include\%%f\
+ )
+
+ @REM Remove the python binary file, that is placed in the site-packages
+ @REM directory by the specific python specific pytorch package.
+ del %SP_DIR%\torch\lib\torch_python.*
+
+ popd
+ popd
+
+ @REM Keep the original backed up to sed later
+ copy build\CMakeCache.txt build\CMakeCache.txt.orig
+) else if "%PKG_NAME%" == "pytorch" (
+ rmdir /s /q %SP_DIR%\torch\bin
+ rmdir /s /q %SP_DIR%\torch\share
+ for %%f in (ATen caffe2 torch c10) do (
+ rmdir /s /q %SP_DIR%\torch\include\%%f
+ )
+
+ @REM Delete all files from the lib directory that do not start with torch_python
+ for %%f in (%SP_DIR%\torch\lib\*) do (
+ set "FILENAME=%%~nf"
+ if "!FILENAME:~0,12!" neq "torch_python" (
+ del %%f
+ )
+ )
+)
+
+@REM Show the sccache stats.
+sccache --show-stats
diff --git a/recipe/build.sh b/recipe/build.sh
index 19da0ad4..973d2c55 100644
--- a/recipe/build.sh
+++ b/recipe/build.sh
@@ -36,12 +36,6 @@ fi
# This is not correctly found for linux-aarch64 since pytorch 2.0.0 for some reason
export _GLIBCXX_USE_CXX11_ABI=1
-# KINETO seems to require CUPTI and will look quite hard for it.
-# CUPTI seems to cause trouble when users install a version of
-# cudatoolkit different than the one specified at compile time.
-# https://github.com/conda-forge/pytorch-cpu-feedstock/issues/135
-export USE_KINETO=OFF
-
if [[ "$target_platform" == "osx-64" ]]; then
export CXXFLAGS="$CXXFLAGS -DTARGET_OS_OSX=1"
export CFLAGS="$CFLAGS -DTARGET_OS_OSX=1"
@@ -69,7 +63,9 @@ CMAKE_FIND_ROOT_PATH+=";$SRC_DIR"
unset CMAKE_INSTALL_PREFIX
export TH_BINARY_BUILD=1
export PYTORCH_BUILD_VERSION=$PKG_VERSION
-export PYTORCH_BUILD_NUMBER=$PKG_BUILDNUM
+# Always pass 0 to avoid appending ".post" to version string.
+# https://github.com/conda-forge/pytorch-cpu-feedstock/issues/315
+export PYTORCH_BUILD_NUMBER=0
export INSTALL_TEST=0
export BUILD_TEST=0
@@ -110,7 +106,7 @@ fi
if [[ "$blas_impl" == "generic" ]]; then
# Fake openblas
export BLAS=OpenBLAS
- sed -i.bak "s#FIND_LIBRARY.*#set(OpenBLAS_LIB ${PREFIX}/lib/liblapack${SHLIB_EXT} ${PREFIX}/lib/libcblas${SHLIB_EXT} ${PREFIX}/lib/libblas${SHLIB_EXT})#g" cmake/Modules/FindOpenBLAS.cmake
+ export OpenBLAS_HOME=${PREFIX}
else
export BLAS=MKL
fi
@@ -155,6 +151,8 @@ elif [[ ${cuda_compiler_version} != "None" ]]; then
if [[ "${target_platform}" != "${build_platform}" ]]; then
export CUDA_TOOLKIT_ROOT=${PREFIX}
fi
+ # for CUPTI
+ export CUDA_TOOLKIT_ROOT_DIR=${PREFIX}
case ${target_platform} in
linux-64)
export CUDAToolkit_TARGET_DIR=${PREFIX}/targets/x86_64-linux
diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml
index 944c1926..a0c8d801 100644
--- a/recipe/conda_build_config.yaml
+++ b/recipe/conda_build_config.yaml
@@ -4,14 +4,28 @@ c_stdlib_version: # [unix]
MACOSX_SDK_VERSION: # [osx]
- 13.3 # [osx]
+channel_targets:
+ - conda-forge main
+ - conda-forge pytorch_rc
+is_rc:
+ - False
+ - True
+zip_keys:
+ -
+ - channel_targets
+ - is_rc
+
blas_impl:
- mkl # [x86_64]
- - generic
+ # deprioritized on windows, would be nice to have
+ - generic # [unix]
# https://github.com/conda-forge/.cirun
-github_actions_labels: # [linux]
+github_actions_labels: # [linux or win]
- cirun-openstack-gpu-2xlarge # [linux]
+- cirun-azure-windows-2xlarge # [win]
megabuild:
- true # [linux]
- false # [osx]
+- true # [win]
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index c08de54b..91f0ee79 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,6 @@
+# if you wish to build release candidate number X, append the version string with ".rcX"
{% set version = "2.5.1" %}
-{% set build = 8 %}
+{% set build = 9 %}
{% if cuda_compiler_version != "None" %}
{% set build = build + 200 %}
@@ -14,13 +15,22 @@
# https://github.com/pytorch/pytorch/blob/main/RELEASE.md#triton-dependency-for-the-release
{% set triton = "3.1.0" %}
+# TODO Temporary pin, remove
+{% set mkl = "<2025" %}
+
package:
name: libtorch
version: {{ version }}
source:
+{% if "rc" in version %}
+ git_url: https://github.com/pytorch/pytorch.git
+ git_rev: v{{ version.replace(".rc", "-rc") }}
+{% else %}
+ # The "pytorch-v" tarballs contain submodules; the "pytorch-" ones don't.
url: https://github.com/pytorch/pytorch/releases/download/v{{ version }}/pytorch-v{{ version }}.tar.gz
sha256: 740eb5fff95e33cfe699bad43be83523f569c7cc7f9c285c2a255416443dd266
+{% endif %}
patches:
- patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch
# https://github.com/pytorch/pytorch/pull/137084
@@ -32,7 +42,7 @@ source:
- patches/0004-Update-sympy-version.patch
- patches/0005-Fix-duplicate-linker-script.patch # [cuda_compiler_version != "None" and aarch64]
# https://github.com/pytorch/pytorch/pull/136034
- - patches/0006-3.13-fix-3.13-pickle-error-in-serialization.py-13603.patch
+ - patches/0006-fix-3.13-pickle-error-in-serialization.py-136034.patch
# https://github.com/pytorch/pytorch/pull/137331
- patches/0007-Allow-users-to-overwrite-ld-with-environment-variabl.patch
# conda-specific patch, upstream force-disables libcufile w/ TH_BINARY_BUILD
@@ -46,16 +56,26 @@ source:
# https://github.com/pytorch/pytorch/pull/137740
- patches/0011-Fixes-NumPy-2-test-failures-in-test_torch.py-137740.patch
# fix BLAS calling convention for openblas
- - patches/0013-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
+ - patches/0012-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
# fix mkl-2024 issue
# https://github.com/pytorch/pytorch/pull/143894
- - patches/0014-fix-issue-142484.patch
+ - patches/0013-fix-issue-142484.patch
+ - patches/0014-Fix-FindOpenBLAS.patch
+ # backport https://github.com/pytorch/pytorch/pull/138095
+ - patches/0015-CD-Enable-Python-3.13-on-windows-138095.patch
build:
number: {{ build }}
- skip: true # [win]
# cuda 11.8 was dropped due to maintenance effort, see discussion in #177
skip: true # [cuda_compiler_version == "11.8"]
+ # This logic allows two rc variants to be defined in the conda_build_config, but only one to actually be built.
+ # We want to be able to define two variants in the cbc so we can assign different labels to each in the upload channel
+ # (by zipping is_rc with channel_targets). This prevents rc builds being used unless specifically requested.
+{% if "rc" in version %}
+ skip: true # [not is_rc]
+{% else %}
+ skip: true # [is_rc]
+{% endif %}
string: cuda{{ cuda_compiler_version | replace('.', '') }}_{{ blas_impl }}_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
string: cpu_{{ blas_impl }}_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
detect_binary_files_with_prefix: false
@@ -74,7 +94,7 @@ requirements:
# Keep this list synchronized (except for python*, numpy*) in outputs
# We use python to build libtorch as well because it is easier
build:
- # When you change 3.12 here, change it in build.sh as well
+ # When you change 3.12 here, change it in build.sh/bld.bat as well
- python 3.12 # [megabuild and build_platform != target_platform]
- python # [not megabuild and build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
@@ -86,6 +106,8 @@ requirements:
- {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- libgomp # [linux]
- llvm-openmp # [osx]
+ - intel-openmp {{ mkl }} # [win]
+ - libuv # [win]
- cmake
- ninja
# Keep libprotobuf here so that a compatibile version
@@ -93,24 +115,26 @@ requirements:
- libprotobuf
- protobuf
- make # [linux]
+ - sccache # [win]
host:
# GPU requirements
- cudnn # [cuda_compiler_version != "None"]
- - nccl # [cuda_compiler_version != "None"]
+ - nccl # [cuda_compiler_version != "None" and linux]
- magma # [cuda_compiler_version != "None"]
- cuda-version {{ cuda_compiler_version }} # [cuda_compiler_version != "None"]
- nvtx-c # [cuda_compiler_version != "None"]
{% if cuda_compiler_version != "None" %}
- - cuda-driver-dev
+ - cuda-driver-dev # [linux]
- cuda-cudart-dev
+ - cuda-cupti-dev # [linux]
- cuda-nvrtc-dev
- cuda-nvtx-dev
- cuda-nvml-dev
- cuda-profiler-api
- - cusparselt
+ - cusparselt # [linux]
- libcublas-dev
- - libcudss-dev
- - libcufile-dev
+ - libcudss-dev # [linux]
+ - libcufile-dev # [linux]
- libcufft-dev
- libcurand-dev
- libcusolver-dev
@@ -122,16 +146,20 @@ requirements:
- numpy * # [megabuild]
- numpy # [not megabuild]
- pip
- - setuptools
+ # see https://github.com/pytorch/pytorch/issues/136541
+ - setuptools <=72.1.0 # [win]
+ - setuptools # [not win]
- pyyaml
- requests
- six
- mkl-devel {{ mkl }} # [blas_impl == "mkl"]
- libcblas * *_mkl # [blas_impl == "mkl"]
+ - libblas # [blas_impl != "mkl"]
- libcblas # [blas_impl != "mkl"]
- liblapack # [blas_impl != "mkl"]
- libgomp # [linux]
- llvm-openmp # [osx]
+ - intel-openmp {{ mkl }} # [win]
- libabseil
- libprotobuf
- sleef
@@ -141,6 +169,8 @@ requirements:
run:
# GPU requirements without run_exports
- {{ pin_compatible('cudnn') }} # [cuda_compiler_version != "None"]
+ - intel-openmp {{ mkl }} # [win]
+ - libblas * *{{ blas_impl }} # [blas_impl == "mkl"]
run_constrained:
# These constraints ensure conflict between pytorch and
# pytorch-cpu 1.1 which we built before conda-forge had GPU infrastructure
@@ -152,16 +182,44 @@ requirements:
- pytorch-cpu ==99999999 # [cuda_compiler_version != "None"]
- pytorch {{ version }} cuda{{ cuda_compiler_version | replace('.', '') }}_{{ blas_impl }}_*_{{ PKG_BUILDNUM }} # [cuda_compiler_version != "None"]
- pytorch {{ version }} cpu_{{ blas_impl }}_*_{{ PKG_BUILDNUM }} # [cuda_compiler_version == "None"]
+ # if using OpenBLAS, ensure that a version compatible with OpenMP is used
+ # otherwise, we get the following warnings:
+ # OpenBLAS Warning : Detect OpenMP Loop and this application may hang. Please rebuild the library with USE_OPENMP=1 option.
+ - openblas * openmp_* # [unix and blas_impl != "mkl"]
+# these tests are for the libtorch output below, but due to
+# a particularity of conda-build, that output is defined in
+# the global build stage, including tests
test:
commands:
# libraries
- {% for each_lib in [ 'libc10', 'libshm', 'libtorch', 'libtorch_cpu', 'libtorch_global_deps'] %}
- - test -f $PREFIX/lib/{{ each_lib }}.so # [linux]
- - test -f $PREFIX/lib/{{ each_lib }}.dylib # [osx]
+ {% for each_lib in [ 'c10', 'shm', 'torch', 'torch_cpu', 'torch_global_deps'] %}
+ - test -f $PREFIX/lib/lib{{ each_lib }}.so # [linux]
+ - test -f $PREFIX/lib/lib{{ each_lib }}.dylib # [osx]
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.dll exit 1 # [win]
+ {% endfor %}
+
+ # Windows specific .LIB files
+ {% for each_lib in [ 'c10', 'shm', 'torch', 'torch_cpu'] %}
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.lib exit 1 # [win]
+ {% endfor %}
+
+ # Windows specific libraries
+ {% for each_lib in [ 'asmjit', 'fbgemm'] %}
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.dll exit 1 # [win]
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.lib exit 1 # [win]
+ {% endfor %}
+
+ # Cuda only libraries
+ {% for each_lib in ['c10_cuda', 'caffe2_nvrtc', 'torch_cuda'] %}
+ - test -f $PREFIX/lib/lib{{ each_lib }}.so # [linux and cuda_compiler_version != "None"]
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.dll exit 1 # [win and cuda_compiler_version != "None"]
+ - if not exist %SP_DIR%\torch\lib\{{ each_lib }}.lib exit 1 # [win and cuda_compiler_version != "None"]
{% endfor %}
- {% for each_lib in ['libc10_cuda', 'libcaffe2_nvrtc', 'libtorch_cuda', 'libtorch_cuda_linalg'] %}
- - test -f $PREFIX/lib/{{ each_lib }}.so # [linux and cuda_compiler_version != "None"]
+
+ # Linux specific cuda libraries
+ {% for each_lib in [ 'torch_cuda_linalg'] %}
+ - test -f $PREFIX/lib/lib{{ each_lib }}.so # [linux and cuda_compiler_version != "None"]
{% endfor %}
outputs:
@@ -189,6 +247,7 @@ outputs:
- {{ compiler('cuda') }} # [cuda_compiler_version != "None"]
- libgomp # [linux]
- llvm-openmp # [osx]
+ - intel-openmp {{ mkl }} # [win]
- cmake
- ninja
# Keep libprotobuf here so that a compatibile version
@@ -196,24 +255,26 @@ outputs:
- libprotobuf
- protobuf
- make # [linux]
+ - sccache # [win]
host:
# GPU requirements
- cudnn # [cuda_compiler_version != "None"]
- - nccl # [cuda_compiler_version != "None"]
+ - nccl # [cuda_compiler_version != "None" and linux]
- cuda-version {{ cuda_compiler_version }} # [cuda_compiler_version != "None"]
- nvtx-c # [cuda_compiler_version != "None"]
- magma # [cuda_compiler_version != "None"]
{% if cuda_compiler_version != "None" %}
- - cuda-driver-dev
+ - cuda-driver-dev # [linux]
- cuda-cudart-dev
+ - cuda-cupti-dev # [linux]
- cuda-nvrtc-dev
- cuda-nvtx-dev
- cuda-nvml-dev
- cuda-profiler-api
- - cusparselt
+ - cusparselt # [linux]
- libcublas-dev
- - libcudss-dev
- - libcufile-dev
+ - libcudss-dev # [linux]
+ - libcufile-dev # [linux]
- libcufft-dev
- libcurand-dev
- libcusolver-dev
@@ -223,7 +284,9 @@ outputs:
- python
- numpy
- pip
- - setuptools
+ # see https://github.com/pytorch/pytorch/issues/136541
+ - setuptools <=72.1.0 # [win]
+ - setuptools # [not win]
- pyyaml
- requests
- six
@@ -233,6 +296,7 @@ outputs:
- liblapack # [blas_impl != "mkl"]
- libgomp # [linux]
- llvm-openmp # [osx]
+ - intel-openmp {{ mkl }} # [win]
- libabseil
- libprotobuf
- sleef
@@ -242,6 +306,8 @@ outputs:
- {{ pin_subpackage('libtorch', exact=True) }}
run:
- llvm-openmp # [osx]
+ - intel-openmp {{ mkl }} # [win]
+ - libblas * *{{ blas_impl }} # [blas_impl == "mkl"]
# GPU requirements without run_exports
- {{ pin_compatible('cudnn') }} # [cuda_compiler_version != "None"]
# other requirements
@@ -259,7 +325,7 @@ outputs:
- __cuda # [cuda_compiler_version != "None"]
- libtorch {{ version }}
- setuptools
- - triton {{ triton }} # [cuda_compiler_version != "None"]
+ - triton {{ triton }} # [cuda_compiler_version != "None" and not win]
run_constrained:
# These constraints ensure conflict between pytorch and
# pytorch-cpu 1.1 which we built before conda-forge had GPU infrastructure
@@ -283,12 +349,18 @@ outputs:
- pip
- expecttest
- xmlrunner
+ # Required by run_test.py
- pytest-flakefinder
- pytest-rerunfailures
- pytest-xdist
+ # danpetry/TF: Pytorch includes their own edited version of pytest-shard and adding
+ # it into the test deps as well results in the --shard-id option being added twice.
+ # https://github.com/pytorch/pytorch/blob/main/test/pytest_shard_custom.py
+ # - pytest-shard
imports:
- - torch # [not (aarch64 and cuda_compiler_version != "None")]
+ - torch
source_files:
+ # Only include the source_files if we are actually going to run the tests.
- test
# tools/ is needed to optimise test run
# as of pytorch=2.0.0, there is a bug when trying to run tests without the tools
@@ -297,7 +369,7 @@ outputs:
# Run pip check so as to ensure that all pytorch packages are installed
# https://github.com/conda-forge/pytorch-cpu-feedstock/issues/24
- pip check
- - python -c "import torch; print(torch.__version__)" # [not (aarch64 and cuda_compiler_version != "None")]
+ - python -c "import torch; print(torch.__version__)"
- python -c "import torch; assert torch.backends.mkldnn.m.is_available()" # [x86 and cuda_compiler_version == "None"]
- python -c "import torch; torch.tensor(1).to('cpu').numpy(); print('numpy support enabled!!!')"
# At conda-forge, we target versions of OSX that are too old for MPS support
@@ -320,7 +392,7 @@ outputs:
"test/test_nn.py",
"test/test_torch.py",
"test/test_xnnpack_integration.py",
- "-m 'not hypothesis'",
+ "-m \"not hypothesis\"",
]) %}
{% set skips = "(TestTorch and test_print)" %}
@@ -338,11 +410,39 @@ outputs:
{% set skips = skips ~ " or (TestCustomOpAPI and test_compile)" %} # [py==313]
{% set skips = skips ~ " or (TestCustomOpAPI and test_fake)" %} # [py==313]
{% set skips = skips ~ " or test_compile_int4_mm or test_compile_int8_mm" %} # [py==313]
+ # doesn't crash, but gets different result on aarch + CUDA
+ {% set skips = skips ~ " or illcondition_matrix_input_should_not_crash_cpu" %} # [aarch64 and cuda_compiler_version != "None"]
+ # may crash spuriously
+ {% set skips = skips ~ " or (TestAutograd and test_profiler_seq_nr)" %}
+ {% set skips = skips ~ " or (TestAutograd and test_profiler_propagation)" %}
+ # trivial accuracy problems
+ {% set skips = skips ~ " or test_BCELoss_weights_no_reduce_cuda" %} # [unix and cuda_compiler_version != "None"]
+ {% set skips = skips ~ " or test_ctc_loss_cudnn_tensor_cuda " %} # [unix and cuda_compiler_version != "None"]
+ {% set skips = skips ~ " or (TestTorch and test_index_add_correctness)" %} # [unix and cuda_compiler_version != "None"]
+ # MKL problems
+ {% set skips = skips ~ " or (TestLinalgCPU and test_inverse_errors_large_cpu)" %} # [unix and blas_impl == "mkl" and cuda_compiler_version != "None"]
+ # these tests are failing with low -n values
+ {% set skips = skips ~ " or test_base_does_not_require_grad_mode_nothing" %}
+ {% set skips = skips ~ " or test_base_does_not_require_grad_mode_warn" %}
+ {% set skips = skips ~ " or test_composite_registered_to_cpu_mode_nothing" %}
+ # these tests are failing on windows
+ {% set skips = skips ~ " or (TestNN and test_Conv1d_dilated)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv1d_pad_same_dilated)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv2d_pad_same_dilated)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv2d_padding)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv2d_strided)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv3d_dilated)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv3d_dilated_strided)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv3d_pad_same_dilated)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv3d_stride)" %} # [win]
+ {% set skips = skips ~ " or (TestNN and test_Conv3d_stride_padding)" %} # [win]
# the whole test suite takes forever, but we should get a good enough coverage
# for potential packaging problems by running a fixed subset
- export OMP_NUM_THREADS=4 # [unix]
- - python -m pytest -n auto {{ tests }} -k "not ({{ skips }})" --durations=50 # [not (aarch64 and cuda_compiler_version != "None")]
+ # reduced paralellism to avoid OOM; test only one python version on aarch because emulation is super-slow
+ - python -m pytest -n 2 {{ tests }} -k "not ({{ skips }})" --durations=50 # [unix and (not aarch64 or py==312)]
+ - python -m pytest -v -s {{ tests }} -k "not ({{ skips }})" --durations=50 # [win]
# 2021/08/01, hmaarrfk
# While this seems like a roundabout way of defining the package name
@@ -388,4 +488,5 @@ extra:
- benjaminrwilson
- Tobias-Fischer
- beckermr
+ - baszalmstra
feedstock-name: pytorch-cpu
diff --git a/recipe/patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch b/recipe/patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch
index 2def43e4..fab6479d 100644
--- a/recipe/patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch
+++ b/recipe/patches/0001-Force-usage-of-python-3-and-error-without-numpy.patch
@@ -1,14 +1,14 @@
-From 95310cd1178bee8a2df8406a25f1ca80af83f053 Mon Sep 17 00:00:00 2001
+From f3a0f9aab6dce56eea590b946f60256014b61bf7 Mon Sep 17 00:00:00 2001
From: Mark Harfouche
Date: Sun, 1 Sep 2024 17:35:40 -0400
-Subject: [PATCH 01/13] Force usage of python 3 and error without numpy
+Subject: [PATCH 01/15] Force usage of python 3 and error without numpy
---
cmake/Dependencies.cmake | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index e78305e0a8..15c6254860 100644
+index e78305e0a8e..15c62548601 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -861,9 +861,9 @@ if(BUILD_PYTHON)
diff --git a/recipe/patches/0002-Help-find-numpy.patch b/recipe/patches/0002-Help-find-numpy.patch
index c271105a..58792c4b 100644
--- a/recipe/patches/0002-Help-find-numpy.patch
+++ b/recipe/patches/0002-Help-find-numpy.patch
@@ -1,14 +1,14 @@
-From d79c9df23809c13b603126955f639726c1446cef Mon Sep 17 00:00:00 2001
+From 21c30036b5b86f403c0cf4426165d9a6a50edb1a Mon Sep 17 00:00:00 2001
From: Mark Harfouche
Date: Tue, 1 Oct 2024 00:28:40 -0400
-Subject: [PATCH 02/13] Help find numpy
+Subject: [PATCH 02/15] Help find numpy
---
tools/setup_helpers/cmake.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py
-index 4b605fe597..bde41323c7 100644
+index 4b605fe5975..bde41323c76 100644
--- a/tools/setup_helpers/cmake.py
+++ b/tools/setup_helpers/cmake.py
@@ -305,9 +305,15 @@ class CMake:
diff --git a/recipe/patches/0003-Add-USE_SYSTEM_NVTX-option-138287.patch b/recipe/patches/0003-Add-USE_SYSTEM_NVTX-option-138287.patch
index 469263fb..38baefeb 100644
--- a/recipe/patches/0003-Add-USE_SYSTEM_NVTX-option-138287.patch
+++ b/recipe/patches/0003-Add-USE_SYSTEM_NVTX-option-138287.patch
@@ -1,7 +1,7 @@
-From 02f343da493192ab857781aa5698ec3008282688 Mon Sep 17 00:00:00 2001
+From d1826af525db41eda5020a1404f5d5521d67a5dc Mon Sep 17 00:00:00 2001
From: Jeongseok Lee
Date: Sat, 19 Oct 2024 04:26:01 +0000
-Subject: [PATCH 03/13] Add USE_SYSTEM_NVTX option (#138287)
+Subject: [PATCH 03/15] Add USE_SYSTEM_NVTX option (#138287)
## Summary
@@ -21,7 +21,7 @@ Approved by: https://github.com/albanD
3 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 98593c2de9..ae3c3f2cbd 100644
+index 98593c2de97..ae3c3f2cbd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -470,6 +470,7 @@ option(USE_SYSTEM_FXDIV "Use system-provided fxdiv." OFF)
@@ -41,7 +41,7 @@ index 98593c2de9..ae3c3f2cbd 100644
# /Z7 override option When generating debug symbols, CMake default to use the
diff --git a/cmake/public/cuda.cmake b/cmake/public/cuda.cmake
-index afc1bc12ab..152fbdbe6d 100644
+index afc1bc12abf..152fbdbe6dd 100644
--- a/cmake/public/cuda.cmake
+++ b/cmake/public/cuda.cmake
@@ -170,7 +170,11 @@ else()
@@ -58,7 +58,7 @@ index afc1bc12ab..152fbdbe6d 100644
if(nvtx3_FOUND)
add_library(torch::nvtx3 INTERFACE IMPORTED)
diff --git a/setup.py b/setup.py
-index 2b0cfa99d7..7174777ed4 100644
+index 2b0cfa99d71..7174777ed4e 100644
--- a/setup.py
+++ b/setup.py
@@ -183,7 +183,21 @@
diff --git a/recipe/patches/0004-Update-sympy-version.patch b/recipe/patches/0004-Update-sympy-version.patch
index de2978f6..3767fdfc 100644
--- a/recipe/patches/0004-Update-sympy-version.patch
+++ b/recipe/patches/0004-Update-sympy-version.patch
@@ -1,14 +1,14 @@
-From cc95a56d612815f171ba7e71d921f66abfcf2a81 Mon Sep 17 00:00:00 2001
+From e3219c5fe8834753b0cf9e92be4d1ef1e874f370 Mon Sep 17 00:00:00 2001
From: Jeongseok Lee
Date: Thu, 17 Oct 2024 15:04:05 -0700
-Subject: [PATCH 04/13] Update sympy version
+Subject: [PATCH 04/15] Update sympy version
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
-index 7174777ed4..65be34e39b 100644
+index 7174777ed4e..65be34e39b1 100644
--- a/setup.py
+++ b/setup.py
@@ -1158,7 +1158,7 @@ def main():
diff --git a/recipe/patches/0005-Fix-duplicate-linker-script.patch b/recipe/patches/0005-Fix-duplicate-linker-script.patch
index c2afb7ef..9fc6adab 100644
--- a/recipe/patches/0005-Fix-duplicate-linker-script.patch
+++ b/recipe/patches/0005-Fix-duplicate-linker-script.patch
@@ -1,14 +1,14 @@
-From dbe121ede5c3564f78f4ff1278c4966161cf66d5 Mon Sep 17 00:00:00 2001
+From 08a1f44fbc81324aa98d720dfb7b87a261923ac2 Mon Sep 17 00:00:00 2001
From: Jeongseok Lee
Date: Sun, 3 Nov 2024 01:12:36 -0700
-Subject: [PATCH 05/13] Fix duplicate linker script
+Subject: [PATCH 05/15] Fix duplicate linker script
---
setup.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
-index 65be34e39b..b0e01e0d1e 100644
+index 65be34e39b1..b0e01e0d1ee 100644
--- a/setup.py
+++ b/setup.py
@@ -1184,7 +1184,9 @@ def main():
diff --git a/recipe/patches/0006-3.13-fix-3.13-pickle-error-in-serialization.py-13603.patch b/recipe/patches/0006-fix-3.13-pickle-error-in-serialization.py-136034.patch
similarity index 91%
rename from recipe/patches/0006-3.13-fix-3.13-pickle-error-in-serialization.py-13603.patch
rename to recipe/patches/0006-fix-3.13-pickle-error-in-serialization.py-136034.patch
index 296f416d..d4253916 100644
--- a/recipe/patches/0006-3.13-fix-3.13-pickle-error-in-serialization.py-13603.patch
+++ b/recipe/patches/0006-fix-3.13-pickle-error-in-serialization.py-136034.patch
@@ -1,8 +1,7 @@
-From 693df5ec6aec12c70379fce644accca8e02a25d7 Mon Sep 17 00:00:00 2001
+From 15df314a41c69a31c0443254d5552aa1b39d708d Mon Sep 17 00:00:00 2001
From: William Wen
Date: Fri, 13 Sep 2024 13:02:33 -0700
-Subject: [PATCH 06/13] [3.13] fix 3.13 pickle error in serialization.py
- (#136034)
+Subject: [PATCH 06/15] fix 3.13 pickle error in serialization.py (#136034)
Error encountered when adding dynamo 3.13 support.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/136034
@@ -12,7 +11,7 @@ Approved by: https://github.com/albanD
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/torch/serialization.py b/torch/serialization.py
-index d936d31d6f..d937680c03 100644
+index d936d31d6f5..d937680c031 100644
--- a/torch/serialization.py
+++ b/torch/serialization.py
@@ -1005,8 +1005,12 @@ def _legacy_save(obj, f, pickle_module, pickle_protocol) -> None:
diff --git a/recipe/patches/0007-Allow-users-to-overwrite-ld-with-environment-variabl.patch b/recipe/patches/0007-Allow-users-to-overwrite-ld-with-environment-variabl.patch
index aaba6075..514982cc 100644
--- a/recipe/patches/0007-Allow-users-to-overwrite-ld-with-environment-variabl.patch
+++ b/recipe/patches/0007-Allow-users-to-overwrite-ld-with-environment-variabl.patch
@@ -1,7 +1,7 @@
-From 9a77ee329d43cd69200bde74cb5e37324451e6f7 Mon Sep 17 00:00:00 2001
+From 655f694854c3eafdd631235b60bc6c1b279218ed Mon Sep 17 00:00:00 2001
From: Mark Harfouche
Date: Thu, 3 Oct 2024 22:49:56 -0400
-Subject: [PATCH 07/13] Allow users to overwrite ld with environment variables
+Subject: [PATCH 07/15] Allow users to overwrite ld with environment variables
This should help in the case of cross compilation.
@@ -11,7 +11,7 @@ xref: https://github.com/conda-forge/pytorch-cpu-feedstock/pull/261
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/setup_helpers/generate_linker_script.py b/tools/setup_helpers/generate_linker_script.py
-index 11c397a9e5..e66fc19706 100644
+index 11c397a9e5f..e66fc197062 100644
--- a/tools/setup_helpers/generate_linker_script.py
+++ b/tools/setup_helpers/generate_linker_script.py
@@ -1,3 +1,4 @@
diff --git a/recipe/patches/0008-Allow-libcufile-for-conda-builds.patch b/recipe/patches/0008-Allow-libcufile-for-conda-builds.patch
index 33b45617..95c7a842 100644
--- a/recipe/patches/0008-Allow-libcufile-for-conda-builds.patch
+++ b/recipe/patches/0008-Allow-libcufile-for-conda-builds.patch
@@ -1,14 +1,14 @@
-From 79b7588b6476588a77fcd7956fceb333b3b4895a Mon Sep 17 00:00:00 2001
+From 2578bf017b0453c8eb028a09b7523fb150429eca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?=
Date: Fri, 22 Nov 2024 17:50:53 +0100
-Subject: [PATCH 08/13] Allow libcufile for conda builds
+Subject: [PATCH 08/15] Allow libcufile for conda builds
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ae3c3f2cbd..3a845151cf 100644
+index ae3c3f2cbd5..3a845151cf8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -255,7 +255,7 @@ cmake_dependent_option(USE_CUDSS "Use cuDSS" ON "USE_CUDA" OFF)
diff --git a/recipe/patches/0009-Allow-overriding-CUDA-related-paths.patch b/recipe/patches/0009-Allow-overriding-CUDA-related-paths.patch
index 59bdaf64..8c09887b 100644
--- a/recipe/patches/0009-Allow-overriding-CUDA-related-paths.patch
+++ b/recipe/patches/0009-Allow-overriding-CUDA-related-paths.patch
@@ -1,7 +1,7 @@
-From 56b15e05ca8018c4691d0ebf6c71376dd0cec9b7 Mon Sep 17 00:00:00 2001
+From 52e530f222f2d30531c8da889695ac2674964245 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?=
Date: Wed, 27 Nov 2024 13:47:23 +0100
-Subject: [PATCH 09/13] Allow overriding CUDA-related paths
+Subject: [PATCH 09/15] Allow overriding CUDA-related paths
---
cmake/Modules/FindCUDAToolkit.cmake | 2 +-
@@ -9,7 +9,7 @@ Subject: [PATCH 09/13] Allow overriding CUDA-related paths
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmake/Modules/FindCUDAToolkit.cmake b/cmake/Modules/FindCUDAToolkit.cmake
-index ec9ae530aa..b7c0bd9fc5 100644
+index ec9ae530aa6..b7c0bd9fc51 100644
--- a/cmake/Modules/FindCUDAToolkit.cmake
+++ b/cmake/Modules/FindCUDAToolkit.cmake
@@ -497,7 +497,7 @@ Result variables
@@ -22,7 +22,7 @@ index ec9ae530aa..b7c0bd9fc5 100644
set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_LIBRARY_ROOT}")
set(CUDAToolkit_VERSION "${CMAKE_CUDA_COMPILER_TOOLKIT_VERSION}")
diff --git a/tools/setup_helpers/cmake.py b/tools/setup_helpers/cmake.py
-index bde41323c7..b171837cd4 100644
+index bde41323c76..b171837cd4a 100644
--- a/tools/setup_helpers/cmake.py
+++ b/tools/setup_helpers/cmake.py
@@ -252,7 +252,7 @@ class CMake:
diff --git a/recipe/patches/0010-Fix-test-test_linalg.py-for-NumPy-2-136800.patch b/recipe/patches/0010-Fix-test-test_linalg.py-for-NumPy-2-136800.patch
index 4b10d926..4dcc58a8 100644
--- a/recipe/patches/0010-Fix-test-test_linalg.py-for-NumPy-2-136800.patch
+++ b/recipe/patches/0010-Fix-test-test_linalg.py-for-NumPy-2-136800.patch
@@ -1,7 +1,7 @@
-From f3ce4b8087ebdcbb6d9409fa9649d00f8c419d6f Mon Sep 17 00:00:00 2001
+From db0902077a0ef68d0a48ae42f3b60f9cff7b2248 Mon Sep 17 00:00:00 2001
From: Haifeng Jin
Date: Tue, 1 Oct 2024 07:53:24 +0000
-Subject: [PATCH 10/13] Fix test/test_linalg.py for NumPy 2 (#136800)
+Subject: [PATCH 10/15] Fix test/test_linalg.py for NumPy 2 (#136800)
Related to #107302.
@@ -36,7 +36,7 @@ Approved by: https://github.com/lezcano
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/test/test_linalg.py b/test/test_linalg.py
-index e9ec874d69..060bccef2e 100644
+index e9ec874d695..060bccef2e5 100644
--- a/test/test_linalg.py
+++ b/test/test_linalg.py
@@ -2351,7 +2351,7 @@ class TestLinalg(TestCase):
diff --git a/recipe/patches/0011-Fixes-NumPy-2-test-failures-in-test_torch.py-137740.patch b/recipe/patches/0011-Fixes-NumPy-2-test-failures-in-test_torch.py-137740.patch
index 28c49819..fe156f3d 100644
--- a/recipe/patches/0011-Fixes-NumPy-2-test-failures-in-test_torch.py-137740.patch
+++ b/recipe/patches/0011-Fixes-NumPy-2-test-failures-in-test_torch.py-137740.patch
@@ -1,7 +1,7 @@
-From 3009c1400c1707ef016501827c7d90c46cd802a7 Mon Sep 17 00:00:00 2001
+From a1ced1daa37fdcf5345aa0c3095cab8674c1cded Mon Sep 17 00:00:00 2001
From: Haifeng Jin
Date: Sat, 12 Oct 2024 02:40:17 +0000
-Subject: [PATCH 11/13] Fixes NumPy 2 test failures in test_torch.py (#137740)
+Subject: [PATCH 11/15] Fixes NumPy 2 test failures in test_torch.py (#137740)
Related to #107302
@@ -24,7 +24,7 @@ Approved by: https://github.com/ezyang
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/test_torch.py b/test/test_torch.py
-index be4d618081..c6fd6ac9f1 100644
+index be4d6180819..c6fd6ac9f19 100644
--- a/test/test_torch.py
+++ b/test/test_torch.py
@@ -2891,7 +2891,7 @@ else:
diff --git a/recipe/patches/0013-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch b/recipe/patches/0012-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
similarity index 89%
rename from recipe/patches/0013-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
rename to recipe/patches/0012-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
index 639c6621..4d2159dd 100644
--- a/recipe/patches/0013-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
+++ b/recipe/patches/0012-Use-BLAS_USE_CBLAS_DOT-for-OpenBLAS-builds.patch
@@ -1,7 +1,7 @@
-From 9d3dc17fe4f127544be138ada7d242b8af48b14d Mon Sep 17 00:00:00 2001
+From e74a39d09953d4c4dd293e167121cfe83fb172ec Mon Sep 17 00:00:00 2001
From: Isuru Fernando
Date: Wed, 18 Dec 2024 03:59:00 +0000
-Subject: [PATCH 13/13] Use BLAS_USE_CBLAS_DOT for OpenBLAS builds
+Subject: [PATCH 12/15] Use BLAS_USE_CBLAS_DOT for OpenBLAS builds
There are two calling conventions for *dotu functions
@@ -31,7 +31,7 @@ functional calls.
1 file changed, 1 insertion(+)
diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index 15c6254860..3965416eb2 100644
+index 15c62548601..3965416eb29 100644
--- a/cmake/Dependencies.cmake
+++ b/cmake/Dependencies.cmake
@@ -182,6 +182,7 @@ elseif(BLAS STREQUAL "OpenBLAS")
diff --git a/recipe/patches/0014-fix-issue-142484.patch b/recipe/patches/0013-fix-issue-142484.patch
similarity index 88%
rename from recipe/patches/0014-fix-issue-142484.patch
rename to recipe/patches/0013-fix-issue-142484.patch
index 88444fca..528b0371 100644
--- a/recipe/patches/0014-fix-issue-142484.patch
+++ b/recipe/patches/0013-fix-issue-142484.patch
@@ -1,7 +1,7 @@
-From 714ead5bf5c7e7ac0f91934232af2e1966b562fb Mon Sep 17 00:00:00 2001
+From 67b122f715e93592f1d7913ab970619f7b571b96 Mon Sep 17 00:00:00 2001
From: "Zheng, Zhaoqiong"
Date: Fri, 27 Dec 2024 13:49:36 +0800
-Subject: [PATCH] fix issue 142484
+Subject: [PATCH 13/15] fix issue 142484
From https://github.com/pytorch/pytorch/pull/143894
---
@@ -9,7 +9,7 @@ From https://github.com/pytorch/pytorch/pull/143894
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/aten/src/ATen/native/mkl/SpectralOps.cpp b/aten/src/ATen/native/mkl/SpectralOps.cpp
-index e26cfbf6d..c61b76d32 100644
+index e26cfbf6d8e..c61b76d3205 100644
--- a/aten/src/ATen/native/mkl/SpectralOps.cpp
+++ b/aten/src/ATen/native/mkl/SpectralOps.cpp
@@ -477,7 +477,17 @@ static Tensor& _exec_fft(Tensor& out, const Tensor& self, IntArrayRef out_sizes,
@@ -31,6 +31,3 @@ index e26cfbf6d..c61b76d32 100644
auto descriptor = _plan_mkl_fft(
input.strides(), out.strides(), signal_size, input.is_complex(),
out.is_complex(), normalization, forward, value_type);
---
-2.47.1
-
diff --git a/recipe/patches/0014-Fix-FindOpenBLAS.patch b/recipe/patches/0014-Fix-FindOpenBLAS.patch
new file mode 100644
index 00000000..33fb2ffb
--- /dev/null
+++ b/recipe/patches/0014-Fix-FindOpenBLAS.patch
@@ -0,0 +1,45 @@
+From a6924f47769d3d068b6d8e40686733b7ff32544e Mon Sep 17 00:00:00 2001
+From: Bas Zalmstra
+Date: Thu, 16 May 2024 10:46:49 +0200
+Subject: [PATCH 14/15] Fix FindOpenBLAS
+
+---
+ cmake/Modules/FindOpenBLAS.cmake | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/cmake/Modules/FindOpenBLAS.cmake b/cmake/Modules/FindOpenBLAS.cmake
+index 69d8227aea5..0d12185c799 100644
+--- a/cmake/Modules/FindOpenBLAS.cmake
++++ b/cmake/Modules/FindOpenBLAS.cmake
+@@ -31,22 +31,25 @@ SET(Open_BLAS_LIB_SEARCH_PATHS
+ $ENV{OpenBLAS_HOME}/lib
+ )
+
+-FIND_PATH(OpenBLAS_INCLUDE_DIR NAMES cblas.h PATHS ${Open_BLAS_INCLUDE_SEARCH_PATHS})
+-FIND_LIBRARY(OpenBLAS_LIB NAMES openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS})
+-
+ SET(OpenBLAS_FOUND ON)
+
+ # Check include files
++FIND_PATH(OpenBLAS_INCLUDE_DIR NAMES cblas.h PATHS ${Open_BLAS_INCLUDE_SEARCH_PATHS})
+ IF(NOT OpenBLAS_INCLUDE_DIR)
+ SET(OpenBLAS_FOUND OFF)
+ MESSAGE(STATUS "Could not find OpenBLAS include. Turning OpenBLAS_FOUND off")
+ ENDIF()
+
+ # Check libraries
+-IF(NOT OpenBLAS_LIB)
++FOREACH(LIB lapack cblas blas)
++ FIND_LIBRARY(FOUND_LIB_${LIB} NAMES ${LIB} PATHS ${Open_BLAS_LIB_SEARCH_PATHS})
++ IF(NOT FOUND_LIB_${LIB})
+ SET(OpenBLAS_FOUND OFF)
+- MESSAGE(STATUS "Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off")
+-ENDIF()
++ MESSAGE(STATUS "Could not find OpenBLAS lib ${LIB}. Turning OpenBLAS_FOUND off")
++ ELSE()
++ LIST(APPEND OpenBLAS_LIB ${FOUND_LIB_${LIB}})
++ ENDIF()
++ENDFOREACH()
+
+ IF (OpenBLAS_FOUND)
+ IF (NOT OpenBLAS_FIND_QUIETLY)
diff --git a/recipe/patches/0015-CD-Enable-Python-3.13-on-windows-138095.patch b/recipe/patches/0015-CD-Enable-Python-3.13-on-windows-138095.patch
new file mode 100644
index 00000000..b62f6456
--- /dev/null
+++ b/recipe/patches/0015-CD-Enable-Python-3.13-on-windows-138095.patch
@@ -0,0 +1,52 @@
+From 66fa234eccfe98339bfa2bba6eae425ce27a037d Mon Sep 17 00:00:00 2001
+From: atalman
+Date: Tue, 12 Nov 2024 12:28:10 +0000
+Subject: [PATCH 15/15] CD Enable Python 3.13 on windows (#138095)
+
+Adding CD windows. Part of: https://github.com/pytorch/pytorch/issues/130249
+Builder PR landed with smoke test: https://github.com/pytorch/builder/pull/2035
+
+Pull Request resolved: https://github.com/pytorch/pytorch/pull/138095
+Approved by: https://github.com/Skylion007, https://github.com/malfet
+
+Cherry-pick-note: minus changes in `.github/*`
+---
+ functorch/csrc/dim/dim.cpp | 1 +
+ functorch/csrc/dim/dim_opcode.c | 13 ++++++++++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/functorch/csrc/dim/dim.cpp b/functorch/csrc/dim/dim.cpp
+index 722618efbb0..f98818bfdcc 100644
+--- a/functorch/csrc/dim/dim.cpp
++++ b/functorch/csrc/dim/dim.cpp
+@@ -38,6 +38,7 @@ PyObject* Dim_init() {
+ #include "python_variable_simple.h"
+
+ #if IS_PYTHON_3_11_PLUS
++
+ #define Py_BUILD_CORE
+ #include "internal/pycore_opcode.h"
+ #undef Py_BUILD_CORE
+diff --git a/functorch/csrc/dim/dim_opcode.c b/functorch/csrc/dim/dim_opcode.c
+index 81ba62a3781..1b5d0677344 100644
+--- a/functorch/csrc/dim/dim_opcode.c
++++ b/functorch/csrc/dim/dim_opcode.c
+@@ -1,6 +1,17 @@
+ #include
+ #if defined(_WIN32) && IS_PYTHON_3_11_PLUS
+ #define Py_BUILD_CORE
+-#define NEED_OPCODE_TABLES
++#define NEED_OPCODE_TABLES // To get _PyOpcode_Deopt, _PyOpcode_Caches
++
++#if IS_PYTHON_3_13_PLUS
++#include // To get PyUnstable_Code_GetFirstFree
++#define NEED_OPCODE_METADATA
++#include "internal/pycore_opcode_metadata.h"
++#undef NEED_OPCODE_METADATA
++#else
+ #include "internal/pycore_opcode.h"
+ #endif
++
++#undef NEED_OPCODE_TABLES
++#undef Py_BUILD_CORE
++#endif