Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Build TestsNightly Tests

⚠️ DEPRECATION NOTICE ⚠️

Warning

XPK is officially deprecated and in maintenance mode.

We are transitioning all infrastructure provisioning and workload management to Cluster Toolkit (CT).

XPK will receive critical bug fixes and maintenance support through Q3 2026. After this transition period, the repository will be archived. Please note that support for new hardware accelerators (upcoming TPU/GPU generations) will only be added to Cluster Toolkit.

Clusters previously provisioned via XPK will continue to run normally, but we strongly recommend planning a maintenance window to recreate your infrastructure using Cluster Toolkit.

Why the change? We are evolving from XPK's imperative CLI to Cluster Toolkit's declarative blueprint model. This provides a more robust, customizable, and standardized approach to defining AI/ML clusters using Terraform and Packer. Major frameworks like MaxText and Orbax are actively transitioning their deployment standards to CT.

Getting Started & Migration:


Overview

XPK (Accelerated Processing Kit, pronounced x-p-k) is a command line interface that simplifies cluster creation and workload execution on Google Kubernetes Engine (GKE). XPK generates preconfigured, training-optimized clusters and allows easy workload scheduling without any Kubernetes expertise.

XPK is recommended for quick creation of GKE clusters for proofs of concepts and testing.

XPK decouples provisioning capacity from running jobs. There are two structures: clusters (provisioned VMs) and workloads (training jobs). Clusters represent the physical resources you have available. Workloads represent training jobs -- at any time some of these will be completed, others will be running and some will be queued, waiting for cluster resources to become available.

The ideal workflow starts by provisioning the clusters for all of the ML hardware you have reserved. Then, without re-provisioning, submit jobs as needed. By eliminating the need for re-provisioning between jobs, using Docker containers with pre-installed dependencies and cross-ahead of time compilation, these queued jobs run with minimal start times. Further, because workloads return the hardware back to the shared pool when they complete, developers can achieve better use of finite hardware resources. And automated tests can run overnight while resources tend to be underutilized.

XPK supports a variety of hardware accelerators.

AcceleratorTypeRecipes
Ironwoodtpu7xRun training workload with Ironwood and regular/gSC/DWS Calendar reservations using GCS Bucket storage
Run training workload with Ironwood with flex-start using Filestore storage
Run training workload with Ironwood and flex-start using Lustre storage
Trilliumv6eCreate Cluster
Create Workload
TPU v5pv5pCreate Cluster
Create Workload
TPU v5ev5eCreate Cluster
Create Workload
TPU v4v4Create Cluster
Create Workload
GPU A4Xgb200Create Cluster
Create Workload
GPU A4b200Create Cluster
Create Workload
GPU A3 Ultrah200Create Cluster
Create Workload
GPU A3 Megah100-megaCreate Cluster
Create Workload
GPU A3 Highh100Create Cluster
Create Workload
GPU A100A100Create Cluster
Create Workload
CPUn2-standard-32Create Cluster
Create Workload

XPK also supports the following Google Cloud Storage solutions:

Storage TypeDocumentation
Cloud Storage FUSEdocs
Filestoredocs
Parallelstoredocs
Block storage (Persistent Disk, Hyperdisk)docs

Documentation

Dependencies

DependencyWhen used
Google Cloud SDK (gcloud)always
kubectlalways (Auto-installed)
ClusterToolkitProvisioning GPU clusters (Auto-installed)
KueueScheduling workloads (Auto-installed)
JobSetWorkload creation (Auto-installed)
CraneBuilding workload container (Auto-installed)
CoreDNSCluster set up (Auto-installed)

Privacy notice

To help improve XPK, feature usage statistics are collected and sent to Google. You can opt-out at any time by executing the following shell command:

xpk config set send-telemetry <true/false>

XPK telemetry overall is handled in accordance with the Google Privacy Policy. When you use XPK to interact with or utilize GCP Services, your information is handled in accordance with the Google Cloud Privacy Notice.

Contributing

Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.

Get involved

We'd love to hear from you! If you have questions or want to discuss ideas, join us on GitHub Discussions. Found a bug or have a feature request? Please let us know on GitHub Issues.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details

About

xpk (Accelerated Processing Kit, pronounced x-p-k,) is a software tool to help Cloud developers to orchestrate training jobs on accelerators such as TPUs and GPUs on GKE.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages