4141
4242CPU_S390X_ARCH = ["cpu-s390x" ]
4343
44+ CPU_PPC64LE_ARCH = ["cpu-ppc64le" ]
45+
4446CUDA_AARCH64_ARCHES = ["12.6-aarch64" , "12.8-aarch64" ]
4547
4648
@@ -176,6 +178,8 @@ def arch_type(arch_version: str) -> str:
176178 return "cpu-aarch64"
177179 elif arch_version in CPU_S390X_ARCH :
178180 return "cpu-s390x"
181+ elif arch_version in CPU_PPC64LE_ARCH :
182+ return "cpu-ppc64le"
179183 elif arch_version in CUDA_AARCH64_ARCHES :
180184 return "cuda-aarch64"
181185 else : # arch_version should always be "cpu" in this case
@@ -203,6 +207,7 @@ def arch_type(arch_version: str) -> str:
203207 "cpu-cxx11-abi" : f"pytorch/manylinuxcxx11-abi-builder:cpu-cxx11-abi-{ DEFAULT_TAG } " ,
204208 "cpu-aarch64" : f"pytorch/manylinux2_28_aarch64-builder:cpu-aarch64-{ DEFAULT_TAG } " ,
205209 "cpu-s390x" : f"pytorch/manylinuxs390x-builder:cpu-s390x-{ DEFAULT_TAG } " ,
210+ "cpu-ppc64le" : f"pytorch/manylinuxppc64le-builder:cpu-ppc64le-{ DEFAULT_TAG } " ,
206211}
207212
208213CXX11_ABI = "cxx11-abi"
@@ -236,6 +241,7 @@ def translate_desired_cuda(gpu_arch_type: str, gpu_arch_version: str) -> str:
236241 "cpu-aarch64" : "cpu" ,
237242 "cpu-cxx11-abi" : "cpu-cxx11-abi" ,
238243 "cpu-s390x" : "cpu" ,
244+ "cpu-ppc64le" : "cpu" ,
239245 "cuda" : f"cu{ gpu_arch_version .replace ('.' , '' )} " ,
240246 "cuda-aarch64" : f"cu{ gpu_arch_version .replace ('-aarch64' , '' ).replace ('.' , '' )} " ,
241247 "rocm" : f"rocm{ gpu_arch_version } " ,
@@ -316,8 +322,8 @@ def generate_wheels_matrix(
316322 use_split_build : bool = False ,
317323) -> list [dict [str , str ]]:
318324 package_type = "wheel"
319- if os == "linux" or os == "linux-aarch64" or os == "linux-s390x" :
320- # NOTE: We only build manywheel packages for x86_64 and aarch64 and s390x linux
325+ if os == "linux" or os == "linux-aarch64" or os == "linux-s390x" or os == "linux-ppc64le" :
326+ # NOTE: We only build manywheel packages for x86_64 and aarch64 and s390x and ppc64le linux
321327 package_type = "manywheel"
322328
323329 if python_versions is None :
@@ -341,6 +347,11 @@ def generate_wheels_matrix(
341347 # Only want the one arch as the CPU type is different and
342348 # uses different build/test scripts
343349 arches = ["cpu-s390x" ]
350+ elif os == "linux-ppc64le" :
351+ # Only want the one arch as the CPU type is different and
352+ # uses different build/test scripts
353+ arches = ["cpu-ppc64le" ]
354+
344355
345356 ret : list [dict [str , str ]] = []
346357 for python_version in python_versions :
@@ -352,12 +363,13 @@ def generate_wheels_matrix(
352363 or arch_version == "cpu-cxx11-abi"
353364 or arch_version == "cpu-aarch64"
354365 or arch_version == "cpu-s390x"
366+ or arch_version == "cpu-ppc64le"
355367 or arch_version == "xpu"
356368 else arch_version
357369 )
358370
359371 # TODO: Enable python 3.13t cpu-s390x or MacOS or Windows
360- if gpu_arch_type == "cpu-s390x" and python_version == "3.13t" :
372+ if ( gpu_arch_type == "cpu-s390x" or gpu_arch_type == "cpu-ppc64le" ) and python_version == "3.13t" :
361373 continue
362374
363375 if use_split_build and (
0 commit comments