[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-together-ai-together-kueue":3,"mdc--gkowpx-key":34,"related-org-together-ai-together-kueue":2029,"related-repo-together-ai-together-kueue":2210},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"together-kueue","manage GPU job queues with Kueue","Install and use the Kueue job-queueing controller on a Together AI Kubernetes GPU cluster to gate jobs on quota. Covers installing Kueue, defining ResourceFlavor, ClusterQueue, and LocalQueue quota, submitting jobs to a queue, and watching quota admit or suspend them. Reach for it when a Together cluster's GPU pool must be shared across teams or workloads by quota, admitting jobs only when capacity is free, rather than letting every job start immediately. Pins Kueue v0.18.3 (API kueue.x-k8s.io\u002Fv1beta2).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"together-ai","Together AI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftogether-ai.jpg","togethercomputer",[13,17,20],{"name":14,"slug":15,"type":16},"Scaling","scaling","tag",{"name":18,"slug":19,"type":16},"AI Infrastructure","ai-infrastructure",{"name":21,"slug":22,"type":16},"Kubernetes","kubernetes",31,"https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Fskills","2026-07-17T06:06:10.056462",null,4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Skills to help your coding agents use Together AI products.","https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Ftogether-kueue","---\nname: together-kueue\ndescription: Install and use the Kueue job-queueing controller on a Together AI Kubernetes GPU cluster to gate jobs on quota. Covers installing Kueue, defining ResourceFlavor, ClusterQueue, and LocalQueue quota, submitting jobs to a queue, and watching quota admit or suspend them. Reach for it when a Together cluster's GPU pool must be shared across teams or workloads by quota, admitting jobs only when capacity is free, rather than letting every job start immediately. Pins Kueue v0.18.3 (API kueue.x-k8s.io\u002Fv1beta2).\n---\n\n# Kueue on Together GPU clusters\n\nKueue is a Kubernetes-native job queueing controller. It holds jobs in a queue and admits them only when their quota is free, suspending the rest. Use it to share a fixed GPU pool across teams or workloads without overcommitting it. Unlike Volcano, Kueue does not replace the scheduler; it gates when jobs start by toggling their `suspend` flag.\n\nPublic cookbook: https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fkueue-on-gpu-clusters. Pair this skill with the `together-gpu-clusters` skill, which covers creating the cluster and configuring `kubectl`.\n\n## Preconditions\n\n- A Together Kubernetes GPU cluster in the `Ready` state, with `kubectl` pointed at it (`tg beta clusters get-credentials \u003Ccluster_id> --set-default-context`).\n- GPU nodes expose `nvidia.com\u002Fgpu` (NVIDIA device plugin preinstalled on Together clusters).\n\n## Install\n\nPin the version. The API group is `kueue.x-k8s.io\u002Fv1beta2` in v0.18.x; older examples using `v1beta1` will not apply.\n\n```bash\nkubectl apply --server-side -f https:\u002F\u002Fgithub.com\u002Fkubernetes-sigs\u002Fkueue\u002Freleases\u002Fdownload\u002Fv0.18.3\u002Fmanifests.yaml\nkubectl -n kueue-system wait --for=condition=Available deployment\u002Fkueue-controller-manager --timeout=240s\n```\n\n`--server-side` is required; the bundled CRDs exceed the client-side apply annotation limit. Helm is an alternative: `helm install kueue oci:\u002F\u002Fregistry.k8s.io\u002Fkueue\u002Fcharts\u002Fkueue --version 0.18.3 --namespace kueue-system --create-namespace`.\n\n## Define quotas\n\nThree objects: `ResourceFlavor` (a node class), `ClusterQueue` (the quota pool), and `LocalQueue` (the namespaced entry point users submit to).\n\n```yaml\napiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: ResourceFlavor\nmetadata:\n  name: gpu-flavor\n---\napiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: ClusterQueue\nmetadata:\n  name: gpu-cluster-queue\nspec:\n  namespaceSelector: {}            # accept jobs from every namespace\n  resourceGroups:\n    - coveredResources: [\"cpu\", \"memory\", \"nvidia.com\u002Fgpu\"]  # MUST list every resource jobs request\n      flavors:\n        - name: gpu-flavor         # must match the ResourceFlavor\n          resources:\n            - name: \"cpu\"\n              nominalQuota: 64\n            - name: \"memory\"\n              nominalQuota: 512Gi\n            - name: \"nvidia.com\u002Fgpu\"\n              nominalQuota: 8       # admit at most 8 GPUs worth of jobs at once\n---\napiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: LocalQueue\nmetadata:\n  namespace: default\n  name: gpu-queue\nspec:\n  clusterQueue: gpu-cluster-queue\n```\n\n## Attach shared storage (optional)\n\nTogether provisions a static PersistentVolume named after the cluster's shared volume. Bind a `ReadWriteMany` PVC to it so queued jobs share datasets and checkpoints, then mount it in the job (below). Storage is not a quota resource, so it does not affect admission.\n\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: shared-pvc\nspec:\n  accessModes: [\"ReadWriteMany\"]\n  storageClassName: shared-wekafs   # Together default shared storage class\n  volumeName: \u003Cshared-volume-name>  # the static PV named after your shared volume\n  resources:\n    requests:\n      storage: 100Gi\n```\n\n## Submit a job to a queue\n\nAdd the queue-name label and start the job suspended. Kueue flips `suspend` to `false` on admission. The `volumes`\u002F`volumeMounts` blocks are optional; drop them if the job needs no shared storage.\n\n```yaml\napiVersion: batch\u002Fv1\nkind: Job\nmetadata:\n  name: gpu-job\n  namespace: default\n  labels:\n    kueue.x-k8s.io\u002Fqueue-name: gpu-queue   # route to the LocalQueue\nspec:\n  parallelism: 1\n  completions: 1\n  suspend: true                            # Kueue unsuspends on admission\n  template:\n    spec:\n      restartPolicy: Never\n      containers:\n        - name: worker\n          image: nvidia\u002Fcuda:12.4.0-base-ubuntu22.04\n          command: [\"bash\", \"-c\", \"nvidia-smi -L; sleep 180\"]\n          resources:\n            requests:\n              cpu: \"2\"\n              memory: \"8Gi\"\n            limits:\n              nvidia.com\u002Fgpu: 6\n          volumeMounts:\n            - name: shared\n              mountPath: \u002Fmnt\u002Fshared\n      volumes:\n        - name: shared\n          persistentVolumeClaim:\n            claimName: shared-pvc\n```\n\n## Verify\n\n- `kubectl get workloads` shows `ADMITTED True` once the job fits.\n- An over-quota job stays `suspend: true` with no pod. This is correct queueing, not a failure. Read the reason:\n\n```bash\nWORKLOAD=$(kubectl get workloads -o name | grep \u003Cjob-name>)\nkubectl get \"$WORKLOAD\" -o jsonpath='{.status.conditions[?(@.type==\"QuotaReserved\")].message}'\n```\n\n- Freeing quota (a running job finishes or is deleted) auto-admits the next queued job. Do not resubmit.\n\n## Rules and gotchas\n\n- Pin the version, and use API `kueue.x-k8s.io\u002Fv1beta2` for v0.18.x.\n- The ClusterQueue's `coveredResources` MUST include every resource a job requests. A GPU job that also requests CPU and memory is never admitted if the ClusterQueue only covers `nvidia.com\u002Fgpu`. This is the most common failure.\n- `flavors[].name` must exactly match a `ResourceFlavor` name, or the ClusterQueue admits nothing.\n- The `kueue.x-k8s.io\u002Fqueue-name` label must name a `LocalQueue` in the job's own namespace. A missing or wrong label means the job runs immediately, bypassing quota.\n- Volcano and Kueue can coexist: Kueue gates jobs on the default scheduler; Volcano owns pods with `schedulerName: volcano`. Do not point one job at both.\n\n## Reference\n\n- Kueue docs: https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002F\n- Installation: https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Finstallation\u002F\n- Concepts (ResourceFlavor, ClusterQueue, LocalQueue, Workload): https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Fconcepts\u002F\n- Running jobs (Job, JobSet, RayJob, MPIJob): https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Ftasks\u002Frun\u002Fjobs\u002F\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,63,94,101,147,153,174,255,273,279,308,903,909,922,1117,1123,1159,1707,1713,1748,1870,1878,1884,1970,1976,2023],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"kueue-on-together-gpu-clusters",[45],{"type":46,"value":47},"text","Kueue on Together GPU clusters",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,61],{"type":46,"value":53},"Kueue is a Kubernetes-native job queueing controller. It holds jobs in a queue and admits them only when their quota is free, suspending the rest. Use it to share a fixed GPU pool across teams or workloads without overcommitting it. Unlike Volcano, Kueue does not replace the scheduler; it gates when jobs start by toggling their ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":60},"suspend",{"type":46,"value":62}," flag.",{"type":40,"tag":49,"props":64,"children":65},{},[66,68,76,78,84,86,92],{"type":46,"value":67},"Public cookbook: ",{"type":40,"tag":69,"props":70,"children":74},"a",{"href":71,"rel":72},"https:\u002F\u002Fdocs.together.ai\u002Fdocs\u002Fkueue-on-gpu-clusters",[73],"nofollow",[75],{"type":46,"value":71},{"type":46,"value":77},". Pair this skill with the ",{"type":40,"tag":55,"props":79,"children":81},{"className":80},[],[82],{"type":46,"value":83},"together-gpu-clusters",{"type":46,"value":85}," skill, which covers creating the cluster and configuring ",{"type":40,"tag":55,"props":87,"children":89},{"className":88},[],[90],{"type":46,"value":91},"kubectl",{"type":46,"value":93},".",{"type":40,"tag":95,"props":96,"children":98},"h2",{"id":97},"preconditions",[99],{"type":46,"value":100},"Preconditions",{"type":40,"tag":102,"props":103,"children":104},"ul",{},[105,134],{"type":40,"tag":106,"props":107,"children":108},"li",{},[109,111,117,119,124,126,132],{"type":46,"value":110},"A Together Kubernetes GPU cluster in the ",{"type":40,"tag":55,"props":112,"children":114},{"className":113},[],[115],{"type":46,"value":116},"Ready",{"type":46,"value":118}," state, with ",{"type":40,"tag":55,"props":120,"children":122},{"className":121},[],[123],{"type":46,"value":91},{"type":46,"value":125}," pointed at it (",{"type":40,"tag":55,"props":127,"children":129},{"className":128},[],[130],{"type":46,"value":131},"tg beta clusters get-credentials \u003Ccluster_id> --set-default-context",{"type":46,"value":133},").",{"type":40,"tag":106,"props":135,"children":136},{},[137,139,145],{"type":46,"value":138},"GPU nodes expose ",{"type":40,"tag":55,"props":140,"children":142},{"className":141},[],[143],{"type":46,"value":144},"nvidia.com\u002Fgpu",{"type":46,"value":146}," (NVIDIA device plugin preinstalled on Together clusters).",{"type":40,"tag":95,"props":148,"children":150},{"id":149},"install",[151],{"type":46,"value":152},"Install",{"type":40,"tag":49,"props":154,"children":155},{},[156,158,164,166,172],{"type":46,"value":157},"Pin the version. The API group is ",{"type":40,"tag":55,"props":159,"children":161},{"className":160},[],[162],{"type":46,"value":163},"kueue.x-k8s.io\u002Fv1beta2",{"type":46,"value":165}," in v0.18.x; older examples using ",{"type":40,"tag":55,"props":167,"children":169},{"className":168},[],[170],{"type":46,"value":171},"v1beta1",{"type":46,"value":173}," will not apply.",{"type":40,"tag":175,"props":176,"children":181},"pre",{"className":177,"code":178,"language":179,"meta":180,"style":180},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kubectl apply --server-side -f https:\u002F\u002Fgithub.com\u002Fkubernetes-sigs\u002Fkueue\u002Freleases\u002Fdownload\u002Fv0.18.3\u002Fmanifests.yaml\nkubectl -n kueue-system wait --for=condition=Available deployment\u002Fkueue-controller-manager --timeout=240s\n","bash","",[182],{"type":40,"tag":55,"props":183,"children":184},{"__ignoreMap":180},[185,217],{"type":40,"tag":186,"props":187,"children":190},"span",{"class":188,"line":189},"line",1,[191,196,202,207,212],{"type":40,"tag":186,"props":192,"children":194},{"style":193},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[195],{"type":46,"value":91},{"type":40,"tag":186,"props":197,"children":199},{"style":198},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[200],{"type":46,"value":201}," apply",{"type":40,"tag":186,"props":203,"children":204},{"style":198},[205],{"type":46,"value":206}," --server-side",{"type":40,"tag":186,"props":208,"children":209},{"style":198},[210],{"type":46,"value":211}," -f",{"type":40,"tag":186,"props":213,"children":214},{"style":198},[215],{"type":46,"value":216}," https:\u002F\u002Fgithub.com\u002Fkubernetes-sigs\u002Fkueue\u002Freleases\u002Fdownload\u002Fv0.18.3\u002Fmanifests.yaml\n",{"type":40,"tag":186,"props":218,"children":220},{"class":188,"line":219},2,[221,225,230,235,240,245,250],{"type":40,"tag":186,"props":222,"children":223},{"style":193},[224],{"type":46,"value":91},{"type":40,"tag":186,"props":226,"children":227},{"style":198},[228],{"type":46,"value":229}," -n",{"type":40,"tag":186,"props":231,"children":232},{"style":198},[233],{"type":46,"value":234}," kueue-system",{"type":40,"tag":186,"props":236,"children":237},{"style":198},[238],{"type":46,"value":239}," wait",{"type":40,"tag":186,"props":241,"children":242},{"style":198},[243],{"type":46,"value":244}," --for=condition=Available",{"type":40,"tag":186,"props":246,"children":247},{"style":198},[248],{"type":46,"value":249}," deployment\u002Fkueue-controller-manager",{"type":40,"tag":186,"props":251,"children":252},{"style":198},[253],{"type":46,"value":254}," --timeout=240s\n",{"type":40,"tag":49,"props":256,"children":257},{},[258,264,266,272],{"type":40,"tag":55,"props":259,"children":261},{"className":260},[],[262],{"type":46,"value":263},"--server-side",{"type":46,"value":265}," is required; the bundled CRDs exceed the client-side apply annotation limit. Helm is an alternative: ",{"type":40,"tag":55,"props":267,"children":269},{"className":268},[],[270],{"type":46,"value":271},"helm install kueue oci:\u002F\u002Fregistry.k8s.io\u002Fkueue\u002Fcharts\u002Fkueue --version 0.18.3 --namespace kueue-system --create-namespace",{"type":46,"value":93},{"type":40,"tag":95,"props":274,"children":276},{"id":275},"define-quotas",[277],{"type":46,"value":278},"Define quotas",{"type":40,"tag":49,"props":280,"children":281},{},[282,284,290,292,298,300,306],{"type":46,"value":283},"Three objects: ",{"type":40,"tag":55,"props":285,"children":287},{"className":286},[],[288],{"type":46,"value":289},"ResourceFlavor",{"type":46,"value":291}," (a node class), ",{"type":40,"tag":55,"props":293,"children":295},{"className":294},[],[296],{"type":46,"value":297},"ClusterQueue",{"type":46,"value":299}," (the quota pool), and ",{"type":40,"tag":55,"props":301,"children":303},{"className":302},[],[304],{"type":46,"value":305},"LocalQueue",{"type":46,"value":307}," (the namespaced entry point users submit to).",{"type":40,"tag":175,"props":309,"children":313},{"className":310,"code":311,"language":312,"meta":180,"style":180},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","apiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: ResourceFlavor\nmetadata:\n  name: gpu-flavor\n---\napiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: ClusterQueue\nmetadata:\n  name: gpu-cluster-queue\nspec:\n  namespaceSelector: {}            # accept jobs from every namespace\n  resourceGroups:\n    - coveredResources: [\"cpu\", \"memory\", \"nvidia.com\u002Fgpu\"]  # MUST list every resource jobs request\n      flavors:\n        - name: gpu-flavor         # must match the ResourceFlavor\n          resources:\n            - name: \"cpu\"\n              nominalQuota: 64\n            - name: \"memory\"\n              nominalQuota: 512Gi\n            - name: \"nvidia.com\u002Fgpu\"\n              nominalQuota: 8       # admit at most 8 GPUs worth of jobs at once\n---\napiVersion: kueue.x-k8s.io\u002Fv1beta2\nkind: LocalQueue\nmetadata:\n  namespace: default\n  name: gpu-queue\nspec:\n  clusterQueue: gpu-cluster-queue\n","yaml",[314],{"type":40,"tag":55,"props":315,"children":316},{"__ignoreMap":180},[317,337,354,368,385,394,410,427,439,456,469,493,506,588,601,629,642,672,691,719,736,764,786,794,810,827,839,857,874,886],{"type":40,"tag":186,"props":318,"children":319},{"class":188,"line":189},[320,326,332],{"type":40,"tag":186,"props":321,"children":323},{"style":322},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[324],{"type":46,"value":325},"apiVersion",{"type":40,"tag":186,"props":327,"children":329},{"style":328},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[330],{"type":46,"value":331},":",{"type":40,"tag":186,"props":333,"children":334},{"style":198},[335],{"type":46,"value":336}," kueue.x-k8s.io\u002Fv1beta2\n",{"type":40,"tag":186,"props":338,"children":339},{"class":188,"line":219},[340,345,349],{"type":40,"tag":186,"props":341,"children":342},{"style":322},[343],{"type":46,"value":344},"kind",{"type":40,"tag":186,"props":346,"children":347},{"style":328},[348],{"type":46,"value":331},{"type":40,"tag":186,"props":350,"children":351},{"style":198},[352],{"type":46,"value":353}," ResourceFlavor\n",{"type":40,"tag":186,"props":355,"children":357},{"class":188,"line":356},3,[358,363],{"type":40,"tag":186,"props":359,"children":360},{"style":322},[361],{"type":46,"value":362},"metadata",{"type":40,"tag":186,"props":364,"children":365},{"style":328},[366],{"type":46,"value":367},":\n",{"type":40,"tag":186,"props":369,"children":370},{"class":188,"line":27},[371,376,380],{"type":40,"tag":186,"props":372,"children":373},{"style":322},[374],{"type":46,"value":375},"  name",{"type":40,"tag":186,"props":377,"children":378},{"style":328},[379],{"type":46,"value":331},{"type":40,"tag":186,"props":381,"children":382},{"style":198},[383],{"type":46,"value":384}," gpu-flavor\n",{"type":40,"tag":186,"props":386,"children":388},{"class":188,"line":387},5,[389],{"type":40,"tag":186,"props":390,"children":391},{"style":193},[392],{"type":46,"value":393},"---\n",{"type":40,"tag":186,"props":395,"children":397},{"class":188,"line":396},6,[398,402,406],{"type":40,"tag":186,"props":399,"children":400},{"style":322},[401],{"type":46,"value":325},{"type":40,"tag":186,"props":403,"children":404},{"style":328},[405],{"type":46,"value":331},{"type":40,"tag":186,"props":407,"children":408},{"style":198},[409],{"type":46,"value":336},{"type":40,"tag":186,"props":411,"children":413},{"class":188,"line":412},7,[414,418,422],{"type":40,"tag":186,"props":415,"children":416},{"style":322},[417],{"type":46,"value":344},{"type":40,"tag":186,"props":419,"children":420},{"style":328},[421],{"type":46,"value":331},{"type":40,"tag":186,"props":423,"children":424},{"style":198},[425],{"type":46,"value":426}," ClusterQueue\n",{"type":40,"tag":186,"props":428,"children":430},{"class":188,"line":429},8,[431,435],{"type":40,"tag":186,"props":432,"children":433},{"style":322},[434],{"type":46,"value":362},{"type":40,"tag":186,"props":436,"children":437},{"style":328},[438],{"type":46,"value":367},{"type":40,"tag":186,"props":440,"children":442},{"class":188,"line":441},9,[443,447,451],{"type":40,"tag":186,"props":444,"children":445},{"style":322},[446],{"type":46,"value":375},{"type":40,"tag":186,"props":448,"children":449},{"style":328},[450],{"type":46,"value":331},{"type":40,"tag":186,"props":452,"children":453},{"style":198},[454],{"type":46,"value":455}," gpu-cluster-queue\n",{"type":40,"tag":186,"props":457,"children":459},{"class":188,"line":458},10,[460,465],{"type":40,"tag":186,"props":461,"children":462},{"style":322},[463],{"type":46,"value":464},"spec",{"type":40,"tag":186,"props":466,"children":467},{"style":328},[468],{"type":46,"value":367},{"type":40,"tag":186,"props":470,"children":472},{"class":188,"line":471},11,[473,478,482,487],{"type":40,"tag":186,"props":474,"children":475},{"style":322},[476],{"type":46,"value":477},"  namespaceSelector",{"type":40,"tag":186,"props":479,"children":480},{"style":328},[481],{"type":46,"value":331},{"type":40,"tag":186,"props":483,"children":484},{"style":328},[485],{"type":46,"value":486}," {}",{"type":40,"tag":186,"props":488,"children":490},{"style":489},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[491],{"type":46,"value":492},"            # accept jobs from every namespace\n",{"type":40,"tag":186,"props":494,"children":496},{"class":188,"line":495},12,[497,502],{"type":40,"tag":186,"props":498,"children":499},{"style":322},[500],{"type":46,"value":501},"  resourceGroups",{"type":40,"tag":186,"props":503,"children":504},{"style":328},[505],{"type":46,"value":367},{"type":40,"tag":186,"props":507,"children":509},{"class":188,"line":508},13,[510,515,520,524,529,534,539,543,548,553,558,562,566,570,574,578,583],{"type":40,"tag":186,"props":511,"children":512},{"style":328},[513],{"type":46,"value":514},"    -",{"type":40,"tag":186,"props":516,"children":517},{"style":322},[518],{"type":46,"value":519}," coveredResources",{"type":40,"tag":186,"props":521,"children":522},{"style":328},[523],{"type":46,"value":331},{"type":40,"tag":186,"props":525,"children":526},{"style":328},[527],{"type":46,"value":528}," [",{"type":40,"tag":186,"props":530,"children":531},{"style":328},[532],{"type":46,"value":533},"\"",{"type":40,"tag":186,"props":535,"children":536},{"style":198},[537],{"type":46,"value":538},"cpu",{"type":40,"tag":186,"props":540,"children":541},{"style":328},[542],{"type":46,"value":533},{"type":40,"tag":186,"props":544,"children":545},{"style":328},[546],{"type":46,"value":547},",",{"type":40,"tag":186,"props":549,"children":550},{"style":328},[551],{"type":46,"value":552}," \"",{"type":40,"tag":186,"props":554,"children":555},{"style":198},[556],{"type":46,"value":557},"memory",{"type":40,"tag":186,"props":559,"children":560},{"style":328},[561],{"type":46,"value":533},{"type":40,"tag":186,"props":563,"children":564},{"style":328},[565],{"type":46,"value":547},{"type":40,"tag":186,"props":567,"children":568},{"style":328},[569],{"type":46,"value":552},{"type":40,"tag":186,"props":571,"children":572},{"style":198},[573],{"type":46,"value":144},{"type":40,"tag":186,"props":575,"children":576},{"style":328},[577],{"type":46,"value":533},{"type":40,"tag":186,"props":579,"children":580},{"style":328},[581],{"type":46,"value":582},"]",{"type":40,"tag":186,"props":584,"children":585},{"style":489},[586],{"type":46,"value":587},"  # MUST list every resource jobs request\n",{"type":40,"tag":186,"props":589,"children":591},{"class":188,"line":590},14,[592,597],{"type":40,"tag":186,"props":593,"children":594},{"style":322},[595],{"type":46,"value":596},"      flavors",{"type":40,"tag":186,"props":598,"children":599},{"style":328},[600],{"type":46,"value":367},{"type":40,"tag":186,"props":602,"children":604},{"class":188,"line":603},15,[605,610,615,619,624],{"type":40,"tag":186,"props":606,"children":607},{"style":328},[608],{"type":46,"value":609},"        -",{"type":40,"tag":186,"props":611,"children":612},{"style":322},[613],{"type":46,"value":614}," name",{"type":40,"tag":186,"props":616,"children":617},{"style":328},[618],{"type":46,"value":331},{"type":40,"tag":186,"props":620,"children":621},{"style":198},[622],{"type":46,"value":623}," gpu-flavor",{"type":40,"tag":186,"props":625,"children":626},{"style":489},[627],{"type":46,"value":628},"         # must match the ResourceFlavor\n",{"type":40,"tag":186,"props":630,"children":632},{"class":188,"line":631},16,[633,638],{"type":40,"tag":186,"props":634,"children":635},{"style":322},[636],{"type":46,"value":637},"          resources",{"type":40,"tag":186,"props":639,"children":640},{"style":328},[641],{"type":46,"value":367},{"type":40,"tag":186,"props":643,"children":645},{"class":188,"line":644},17,[646,651,655,659,663,667],{"type":40,"tag":186,"props":647,"children":648},{"style":328},[649],{"type":46,"value":650},"            -",{"type":40,"tag":186,"props":652,"children":653},{"style":322},[654],{"type":46,"value":614},{"type":40,"tag":186,"props":656,"children":657},{"style":328},[658],{"type":46,"value":331},{"type":40,"tag":186,"props":660,"children":661},{"style":328},[662],{"type":46,"value":552},{"type":40,"tag":186,"props":664,"children":665},{"style":198},[666],{"type":46,"value":538},{"type":40,"tag":186,"props":668,"children":669},{"style":328},[670],{"type":46,"value":671},"\"\n",{"type":40,"tag":186,"props":673,"children":675},{"class":188,"line":674},18,[676,681,685],{"type":40,"tag":186,"props":677,"children":678},{"style":322},[679],{"type":46,"value":680},"              nominalQuota",{"type":40,"tag":186,"props":682,"children":683},{"style":328},[684],{"type":46,"value":331},{"type":40,"tag":186,"props":686,"children":688},{"style":687},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[689],{"type":46,"value":690}," 64\n",{"type":40,"tag":186,"props":692,"children":694},{"class":188,"line":693},19,[695,699,703,707,711,715],{"type":40,"tag":186,"props":696,"children":697},{"style":328},[698],{"type":46,"value":650},{"type":40,"tag":186,"props":700,"children":701},{"style":322},[702],{"type":46,"value":614},{"type":40,"tag":186,"props":704,"children":705},{"style":328},[706],{"type":46,"value":331},{"type":40,"tag":186,"props":708,"children":709},{"style":328},[710],{"type":46,"value":552},{"type":40,"tag":186,"props":712,"children":713},{"style":198},[714],{"type":46,"value":557},{"type":40,"tag":186,"props":716,"children":717},{"style":328},[718],{"type":46,"value":671},{"type":40,"tag":186,"props":720,"children":722},{"class":188,"line":721},20,[723,727,731],{"type":40,"tag":186,"props":724,"children":725},{"style":322},[726],{"type":46,"value":680},{"type":40,"tag":186,"props":728,"children":729},{"style":328},[730],{"type":46,"value":331},{"type":40,"tag":186,"props":732,"children":733},{"style":198},[734],{"type":46,"value":735}," 512Gi\n",{"type":40,"tag":186,"props":737,"children":739},{"class":188,"line":738},21,[740,744,748,752,756,760],{"type":40,"tag":186,"props":741,"children":742},{"style":328},[743],{"type":46,"value":650},{"type":40,"tag":186,"props":745,"children":746},{"style":322},[747],{"type":46,"value":614},{"type":40,"tag":186,"props":749,"children":750},{"style":328},[751],{"type":46,"value":331},{"type":40,"tag":186,"props":753,"children":754},{"style":328},[755],{"type":46,"value":552},{"type":40,"tag":186,"props":757,"children":758},{"style":198},[759],{"type":46,"value":144},{"type":40,"tag":186,"props":761,"children":762},{"style":328},[763],{"type":46,"value":671},{"type":40,"tag":186,"props":765,"children":767},{"class":188,"line":766},22,[768,772,776,781],{"type":40,"tag":186,"props":769,"children":770},{"style":322},[771],{"type":46,"value":680},{"type":40,"tag":186,"props":773,"children":774},{"style":328},[775],{"type":46,"value":331},{"type":40,"tag":186,"props":777,"children":778},{"style":687},[779],{"type":46,"value":780}," 8",{"type":40,"tag":186,"props":782,"children":783},{"style":489},[784],{"type":46,"value":785},"       # admit at most 8 GPUs worth of jobs at once\n",{"type":40,"tag":186,"props":787,"children":789},{"class":188,"line":788},23,[790],{"type":40,"tag":186,"props":791,"children":792},{"style":193},[793],{"type":46,"value":393},{"type":40,"tag":186,"props":795,"children":797},{"class":188,"line":796},24,[798,802,806],{"type":40,"tag":186,"props":799,"children":800},{"style":322},[801],{"type":46,"value":325},{"type":40,"tag":186,"props":803,"children":804},{"style":328},[805],{"type":46,"value":331},{"type":40,"tag":186,"props":807,"children":808},{"style":198},[809],{"type":46,"value":336},{"type":40,"tag":186,"props":811,"children":813},{"class":188,"line":812},25,[814,818,822],{"type":40,"tag":186,"props":815,"children":816},{"style":322},[817],{"type":46,"value":344},{"type":40,"tag":186,"props":819,"children":820},{"style":328},[821],{"type":46,"value":331},{"type":40,"tag":186,"props":823,"children":824},{"style":198},[825],{"type":46,"value":826}," LocalQueue\n",{"type":40,"tag":186,"props":828,"children":830},{"class":188,"line":829},26,[831,835],{"type":40,"tag":186,"props":832,"children":833},{"style":322},[834],{"type":46,"value":362},{"type":40,"tag":186,"props":836,"children":837},{"style":328},[838],{"type":46,"value":367},{"type":40,"tag":186,"props":840,"children":842},{"class":188,"line":841},27,[843,848,852],{"type":40,"tag":186,"props":844,"children":845},{"style":322},[846],{"type":46,"value":847},"  namespace",{"type":40,"tag":186,"props":849,"children":850},{"style":328},[851],{"type":46,"value":331},{"type":40,"tag":186,"props":853,"children":854},{"style":198},[855],{"type":46,"value":856}," default\n",{"type":40,"tag":186,"props":858,"children":860},{"class":188,"line":859},28,[861,865,869],{"type":40,"tag":186,"props":862,"children":863},{"style":322},[864],{"type":46,"value":375},{"type":40,"tag":186,"props":866,"children":867},{"style":328},[868],{"type":46,"value":331},{"type":40,"tag":186,"props":870,"children":871},{"style":198},[872],{"type":46,"value":873}," gpu-queue\n",{"type":40,"tag":186,"props":875,"children":877},{"class":188,"line":876},29,[878,882],{"type":40,"tag":186,"props":879,"children":880},{"style":322},[881],{"type":46,"value":464},{"type":40,"tag":186,"props":883,"children":884},{"style":328},[885],{"type":46,"value":367},{"type":40,"tag":186,"props":887,"children":889},{"class":188,"line":888},30,[890,895,899],{"type":40,"tag":186,"props":891,"children":892},{"style":322},[893],{"type":46,"value":894},"  clusterQueue",{"type":40,"tag":186,"props":896,"children":897},{"style":328},[898],{"type":46,"value":331},{"type":40,"tag":186,"props":900,"children":901},{"style":198},[902],{"type":46,"value":455},{"type":40,"tag":95,"props":904,"children":906},{"id":905},"attach-shared-storage-optional",[907],{"type":46,"value":908},"Attach shared storage (optional)",{"type":40,"tag":49,"props":910,"children":911},{},[912,914,920],{"type":46,"value":913},"Together provisions a static PersistentVolume named after the cluster's shared volume. Bind a ",{"type":40,"tag":55,"props":915,"children":917},{"className":916},[],[918],{"type":46,"value":919},"ReadWriteMany",{"type":46,"value":921}," PVC to it so queued jobs share datasets and checkpoints, then mount it in the job (below). Storage is not a quota resource, so it does not affect admission.",{"type":40,"tag":175,"props":923,"children":925},{"className":310,"code":924,"language":312,"meta":180,"style":180},"apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: shared-pvc\nspec:\n  accessModes: [\"ReadWriteMany\"]\n  storageClassName: shared-wekafs   # Together default shared storage class\n  volumeName: \u003Cshared-volume-name>  # the static PV named after your shared volume\n  resources:\n    requests:\n      storage: 100Gi\n",[926],{"type":40,"tag":55,"props":927,"children":928},{"__ignoreMap":180},[929,945,961,972,988,999,1032,1054,1076,1088,1100],{"type":40,"tag":186,"props":930,"children":931},{"class":188,"line":189},[932,936,940],{"type":40,"tag":186,"props":933,"children":934},{"style":322},[935],{"type":46,"value":325},{"type":40,"tag":186,"props":937,"children":938},{"style":328},[939],{"type":46,"value":331},{"type":40,"tag":186,"props":941,"children":942},{"style":198},[943],{"type":46,"value":944}," v1\n",{"type":40,"tag":186,"props":946,"children":947},{"class":188,"line":219},[948,952,956],{"type":40,"tag":186,"props":949,"children":950},{"style":322},[951],{"type":46,"value":344},{"type":40,"tag":186,"props":953,"children":954},{"style":328},[955],{"type":46,"value":331},{"type":40,"tag":186,"props":957,"children":958},{"style":198},[959],{"type":46,"value":960}," PersistentVolumeClaim\n",{"type":40,"tag":186,"props":962,"children":963},{"class":188,"line":356},[964,968],{"type":40,"tag":186,"props":965,"children":966},{"style":322},[967],{"type":46,"value":362},{"type":40,"tag":186,"props":969,"children":970},{"style":328},[971],{"type":46,"value":367},{"type":40,"tag":186,"props":973,"children":974},{"class":188,"line":27},[975,979,983],{"type":40,"tag":186,"props":976,"children":977},{"style":322},[978],{"type":46,"value":375},{"type":40,"tag":186,"props":980,"children":981},{"style":328},[982],{"type":46,"value":331},{"type":40,"tag":186,"props":984,"children":985},{"style":198},[986],{"type":46,"value":987}," shared-pvc\n",{"type":40,"tag":186,"props":989,"children":990},{"class":188,"line":387},[991,995],{"type":40,"tag":186,"props":992,"children":993},{"style":322},[994],{"type":46,"value":464},{"type":40,"tag":186,"props":996,"children":997},{"style":328},[998],{"type":46,"value":367},{"type":40,"tag":186,"props":1000,"children":1001},{"class":188,"line":396},[1002,1007,1011,1015,1019,1023,1027],{"type":40,"tag":186,"props":1003,"children":1004},{"style":322},[1005],{"type":46,"value":1006},"  accessModes",{"type":40,"tag":186,"props":1008,"children":1009},{"style":328},[1010],{"type":46,"value":331},{"type":40,"tag":186,"props":1012,"children":1013},{"style":328},[1014],{"type":46,"value":528},{"type":40,"tag":186,"props":1016,"children":1017},{"style":328},[1018],{"type":46,"value":533},{"type":40,"tag":186,"props":1020,"children":1021},{"style":198},[1022],{"type":46,"value":919},{"type":40,"tag":186,"props":1024,"children":1025},{"style":328},[1026],{"type":46,"value":533},{"type":40,"tag":186,"props":1028,"children":1029},{"style":328},[1030],{"type":46,"value":1031},"]\n",{"type":40,"tag":186,"props":1033,"children":1034},{"class":188,"line":412},[1035,1040,1044,1049],{"type":40,"tag":186,"props":1036,"children":1037},{"style":322},[1038],{"type":46,"value":1039},"  storageClassName",{"type":40,"tag":186,"props":1041,"children":1042},{"style":328},[1043],{"type":46,"value":331},{"type":40,"tag":186,"props":1045,"children":1046},{"style":198},[1047],{"type":46,"value":1048}," shared-wekafs",{"type":40,"tag":186,"props":1050,"children":1051},{"style":489},[1052],{"type":46,"value":1053},"   # Together default shared storage class\n",{"type":40,"tag":186,"props":1055,"children":1056},{"class":188,"line":429},[1057,1062,1066,1071],{"type":40,"tag":186,"props":1058,"children":1059},{"style":322},[1060],{"type":46,"value":1061},"  volumeName",{"type":40,"tag":186,"props":1063,"children":1064},{"style":328},[1065],{"type":46,"value":331},{"type":40,"tag":186,"props":1067,"children":1068},{"style":198},[1069],{"type":46,"value":1070}," \u003Cshared-volume-name>",{"type":40,"tag":186,"props":1072,"children":1073},{"style":489},[1074],{"type":46,"value":1075},"  # the static PV named after your shared volume\n",{"type":40,"tag":186,"props":1077,"children":1078},{"class":188,"line":441},[1079,1084],{"type":40,"tag":186,"props":1080,"children":1081},{"style":322},[1082],{"type":46,"value":1083},"  resources",{"type":40,"tag":186,"props":1085,"children":1086},{"style":328},[1087],{"type":46,"value":367},{"type":40,"tag":186,"props":1089,"children":1090},{"class":188,"line":458},[1091,1096],{"type":40,"tag":186,"props":1092,"children":1093},{"style":322},[1094],{"type":46,"value":1095},"    requests",{"type":40,"tag":186,"props":1097,"children":1098},{"style":328},[1099],{"type":46,"value":367},{"type":40,"tag":186,"props":1101,"children":1102},{"class":188,"line":471},[1103,1108,1112],{"type":40,"tag":186,"props":1104,"children":1105},{"style":322},[1106],{"type":46,"value":1107},"      storage",{"type":40,"tag":186,"props":1109,"children":1110},{"style":328},[1111],{"type":46,"value":331},{"type":40,"tag":186,"props":1113,"children":1114},{"style":198},[1115],{"type":46,"value":1116}," 100Gi\n",{"type":40,"tag":95,"props":1118,"children":1120},{"id":1119},"submit-a-job-to-a-queue",[1121],{"type":46,"value":1122},"Submit a job to a queue",{"type":40,"tag":49,"props":1124,"children":1125},{},[1126,1128,1133,1135,1141,1143,1149,1151,1157],{"type":46,"value":1127},"Add the queue-name label and start the job suspended. Kueue flips ",{"type":40,"tag":55,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":46,"value":60},{"type":46,"value":1134}," to ",{"type":40,"tag":55,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":46,"value":1140},"false",{"type":46,"value":1142}," on admission. The ",{"type":40,"tag":55,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":46,"value":1148},"volumes",{"type":46,"value":1150},"\u002F",{"type":40,"tag":55,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":46,"value":1156},"volumeMounts",{"type":46,"value":1158}," blocks are optional; drop them if the job needs no shared storage.",{"type":40,"tag":175,"props":1160,"children":1162},{"className":310,"code":1161,"language":312,"meta":180,"style":180},"apiVersion: batch\u002Fv1\nkind: Job\nmetadata:\n  name: gpu-job\n  namespace: default\n  labels:\n    kueue.x-k8s.io\u002Fqueue-name: gpu-queue   # route to the LocalQueue\nspec:\n  parallelism: 1\n  completions: 1\n  suspend: true                            # Kueue unsuspends on admission\n  template:\n    spec:\n      restartPolicy: Never\n      containers:\n        - name: worker\n          image: nvidia\u002Fcuda:12.4.0-base-ubuntu22.04\n          command: [\"bash\", \"-c\", \"nvidia-smi -L; sleep 180\"]\n          resources:\n            requests:\n              cpu: \"2\"\n              memory: \"8Gi\"\n            limits:\n              nvidia.com\u002Fgpu: 6\n          volumeMounts:\n            - name: shared\n              mountPath: \u002Fmnt\u002Fshared\n      volumes:\n        - name: shared\n          persistentVolumeClaim:\n            claimName: shared-pvc\n",[1163],{"type":40,"tag":55,"props":1164,"children":1165},{"__ignoreMap":180},[1166,1182,1198,1209,1225,1240,1252,1274,1285,1302,1318,1341,1353,1365,1382,1394,1414,1431,1497,1508,1520,1545,1570,1582,1599,1611,1631,1648,1660,1679,1691],{"type":40,"tag":186,"props":1167,"children":1168},{"class":188,"line":189},[1169,1173,1177],{"type":40,"tag":186,"props":1170,"children":1171},{"style":322},[1172],{"type":46,"value":325},{"type":40,"tag":186,"props":1174,"children":1175},{"style":328},[1176],{"type":46,"value":331},{"type":40,"tag":186,"props":1178,"children":1179},{"style":198},[1180],{"type":46,"value":1181}," batch\u002Fv1\n",{"type":40,"tag":186,"props":1183,"children":1184},{"class":188,"line":219},[1185,1189,1193],{"type":40,"tag":186,"props":1186,"children":1187},{"style":322},[1188],{"type":46,"value":344},{"type":40,"tag":186,"props":1190,"children":1191},{"style":328},[1192],{"type":46,"value":331},{"type":40,"tag":186,"props":1194,"children":1195},{"style":198},[1196],{"type":46,"value":1197}," Job\n",{"type":40,"tag":186,"props":1199,"children":1200},{"class":188,"line":356},[1201,1205],{"type":40,"tag":186,"props":1202,"children":1203},{"style":322},[1204],{"type":46,"value":362},{"type":40,"tag":186,"props":1206,"children":1207},{"style":328},[1208],{"type":46,"value":367},{"type":40,"tag":186,"props":1210,"children":1211},{"class":188,"line":27},[1212,1216,1220],{"type":40,"tag":186,"props":1213,"children":1214},{"style":322},[1215],{"type":46,"value":375},{"type":40,"tag":186,"props":1217,"children":1218},{"style":328},[1219],{"type":46,"value":331},{"type":40,"tag":186,"props":1221,"children":1222},{"style":198},[1223],{"type":46,"value":1224}," gpu-job\n",{"type":40,"tag":186,"props":1226,"children":1227},{"class":188,"line":387},[1228,1232,1236],{"type":40,"tag":186,"props":1229,"children":1230},{"style":322},[1231],{"type":46,"value":847},{"type":40,"tag":186,"props":1233,"children":1234},{"style":328},[1235],{"type":46,"value":331},{"type":40,"tag":186,"props":1237,"children":1238},{"style":198},[1239],{"type":46,"value":856},{"type":40,"tag":186,"props":1241,"children":1242},{"class":188,"line":396},[1243,1248],{"type":40,"tag":186,"props":1244,"children":1245},{"style":322},[1246],{"type":46,"value":1247},"  labels",{"type":40,"tag":186,"props":1249,"children":1250},{"style":328},[1251],{"type":46,"value":367},{"type":40,"tag":186,"props":1253,"children":1254},{"class":188,"line":412},[1255,1260,1264,1269],{"type":40,"tag":186,"props":1256,"children":1257},{"style":322},[1258],{"type":46,"value":1259},"    kueue.x-k8s.io\u002Fqueue-name",{"type":40,"tag":186,"props":1261,"children":1262},{"style":328},[1263],{"type":46,"value":331},{"type":40,"tag":186,"props":1265,"children":1266},{"style":198},[1267],{"type":46,"value":1268}," gpu-queue",{"type":40,"tag":186,"props":1270,"children":1271},{"style":489},[1272],{"type":46,"value":1273},"   # route to the LocalQueue\n",{"type":40,"tag":186,"props":1275,"children":1276},{"class":188,"line":429},[1277,1281],{"type":40,"tag":186,"props":1278,"children":1279},{"style":322},[1280],{"type":46,"value":464},{"type":40,"tag":186,"props":1282,"children":1283},{"style":328},[1284],{"type":46,"value":367},{"type":40,"tag":186,"props":1286,"children":1287},{"class":188,"line":441},[1288,1293,1297],{"type":40,"tag":186,"props":1289,"children":1290},{"style":322},[1291],{"type":46,"value":1292},"  parallelism",{"type":40,"tag":186,"props":1294,"children":1295},{"style":328},[1296],{"type":46,"value":331},{"type":40,"tag":186,"props":1298,"children":1299},{"style":687},[1300],{"type":46,"value":1301}," 1\n",{"type":40,"tag":186,"props":1303,"children":1304},{"class":188,"line":458},[1305,1310,1314],{"type":40,"tag":186,"props":1306,"children":1307},{"style":322},[1308],{"type":46,"value":1309},"  completions",{"type":40,"tag":186,"props":1311,"children":1312},{"style":328},[1313],{"type":46,"value":331},{"type":40,"tag":186,"props":1315,"children":1316},{"style":687},[1317],{"type":46,"value":1301},{"type":40,"tag":186,"props":1319,"children":1320},{"class":188,"line":471},[1321,1326,1330,1336],{"type":40,"tag":186,"props":1322,"children":1323},{"style":322},[1324],{"type":46,"value":1325},"  suspend",{"type":40,"tag":186,"props":1327,"children":1328},{"style":328},[1329],{"type":46,"value":331},{"type":40,"tag":186,"props":1331,"children":1333},{"style":1332},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1334],{"type":46,"value":1335}," true",{"type":40,"tag":186,"props":1337,"children":1338},{"style":489},[1339],{"type":46,"value":1340},"                            # Kueue unsuspends on admission\n",{"type":40,"tag":186,"props":1342,"children":1343},{"class":188,"line":495},[1344,1349],{"type":40,"tag":186,"props":1345,"children":1346},{"style":322},[1347],{"type":46,"value":1348},"  template",{"type":40,"tag":186,"props":1350,"children":1351},{"style":328},[1352],{"type":46,"value":367},{"type":40,"tag":186,"props":1354,"children":1355},{"class":188,"line":508},[1356,1361],{"type":40,"tag":186,"props":1357,"children":1358},{"style":322},[1359],{"type":46,"value":1360},"    spec",{"type":40,"tag":186,"props":1362,"children":1363},{"style":328},[1364],{"type":46,"value":367},{"type":40,"tag":186,"props":1366,"children":1367},{"class":188,"line":590},[1368,1373,1377],{"type":40,"tag":186,"props":1369,"children":1370},{"style":322},[1371],{"type":46,"value":1372},"      restartPolicy",{"type":40,"tag":186,"props":1374,"children":1375},{"style":328},[1376],{"type":46,"value":331},{"type":40,"tag":186,"props":1378,"children":1379},{"style":198},[1380],{"type":46,"value":1381}," Never\n",{"type":40,"tag":186,"props":1383,"children":1384},{"class":188,"line":603},[1385,1390],{"type":40,"tag":186,"props":1386,"children":1387},{"style":322},[1388],{"type":46,"value":1389},"      containers",{"type":40,"tag":186,"props":1391,"children":1392},{"style":328},[1393],{"type":46,"value":367},{"type":40,"tag":186,"props":1395,"children":1396},{"class":188,"line":631},[1397,1401,1405,1409],{"type":40,"tag":186,"props":1398,"children":1399},{"style":328},[1400],{"type":46,"value":609},{"type":40,"tag":186,"props":1402,"children":1403},{"style":322},[1404],{"type":46,"value":614},{"type":40,"tag":186,"props":1406,"children":1407},{"style":328},[1408],{"type":46,"value":331},{"type":40,"tag":186,"props":1410,"children":1411},{"style":198},[1412],{"type":46,"value":1413}," worker\n",{"type":40,"tag":186,"props":1415,"children":1416},{"class":188,"line":644},[1417,1422,1426],{"type":40,"tag":186,"props":1418,"children":1419},{"style":322},[1420],{"type":46,"value":1421},"          image",{"type":40,"tag":186,"props":1423,"children":1424},{"style":328},[1425],{"type":46,"value":331},{"type":40,"tag":186,"props":1427,"children":1428},{"style":198},[1429],{"type":46,"value":1430}," nvidia\u002Fcuda:12.4.0-base-ubuntu22.04\n",{"type":40,"tag":186,"props":1432,"children":1433},{"class":188,"line":674},[1434,1439,1443,1447,1451,1455,1459,1463,1467,1472,1476,1480,1484,1489,1493],{"type":40,"tag":186,"props":1435,"children":1436},{"style":322},[1437],{"type":46,"value":1438},"          command",{"type":40,"tag":186,"props":1440,"children":1441},{"style":328},[1442],{"type":46,"value":331},{"type":40,"tag":186,"props":1444,"children":1445},{"style":328},[1446],{"type":46,"value":528},{"type":40,"tag":186,"props":1448,"children":1449},{"style":328},[1450],{"type":46,"value":533},{"type":40,"tag":186,"props":1452,"children":1453},{"style":198},[1454],{"type":46,"value":179},{"type":40,"tag":186,"props":1456,"children":1457},{"style":328},[1458],{"type":46,"value":533},{"type":40,"tag":186,"props":1460,"children":1461},{"style":328},[1462],{"type":46,"value":547},{"type":40,"tag":186,"props":1464,"children":1465},{"style":328},[1466],{"type":46,"value":552},{"type":40,"tag":186,"props":1468,"children":1469},{"style":198},[1470],{"type":46,"value":1471},"-c",{"type":40,"tag":186,"props":1473,"children":1474},{"style":328},[1475],{"type":46,"value":533},{"type":40,"tag":186,"props":1477,"children":1478},{"style":328},[1479],{"type":46,"value":547},{"type":40,"tag":186,"props":1481,"children":1482},{"style":328},[1483],{"type":46,"value":552},{"type":40,"tag":186,"props":1485,"children":1486},{"style":198},[1487],{"type":46,"value":1488},"nvidia-smi -L; sleep 180",{"type":40,"tag":186,"props":1490,"children":1491},{"style":328},[1492],{"type":46,"value":533},{"type":40,"tag":186,"props":1494,"children":1495},{"style":328},[1496],{"type":46,"value":1031},{"type":40,"tag":186,"props":1498,"children":1499},{"class":188,"line":693},[1500,1504],{"type":40,"tag":186,"props":1501,"children":1502},{"style":322},[1503],{"type":46,"value":637},{"type":40,"tag":186,"props":1505,"children":1506},{"style":328},[1507],{"type":46,"value":367},{"type":40,"tag":186,"props":1509,"children":1510},{"class":188,"line":721},[1511,1516],{"type":40,"tag":186,"props":1512,"children":1513},{"style":322},[1514],{"type":46,"value":1515},"            requests",{"type":40,"tag":186,"props":1517,"children":1518},{"style":328},[1519],{"type":46,"value":367},{"type":40,"tag":186,"props":1521,"children":1522},{"class":188,"line":738},[1523,1528,1532,1536,1541],{"type":40,"tag":186,"props":1524,"children":1525},{"style":322},[1526],{"type":46,"value":1527},"              cpu",{"type":40,"tag":186,"props":1529,"children":1530},{"style":328},[1531],{"type":46,"value":331},{"type":40,"tag":186,"props":1533,"children":1534},{"style":328},[1535],{"type":46,"value":552},{"type":40,"tag":186,"props":1537,"children":1538},{"style":198},[1539],{"type":46,"value":1540},"2",{"type":40,"tag":186,"props":1542,"children":1543},{"style":328},[1544],{"type":46,"value":671},{"type":40,"tag":186,"props":1546,"children":1547},{"class":188,"line":766},[1548,1553,1557,1561,1566],{"type":40,"tag":186,"props":1549,"children":1550},{"style":322},[1551],{"type":46,"value":1552},"              memory",{"type":40,"tag":186,"props":1554,"children":1555},{"style":328},[1556],{"type":46,"value":331},{"type":40,"tag":186,"props":1558,"children":1559},{"style":328},[1560],{"type":46,"value":552},{"type":40,"tag":186,"props":1562,"children":1563},{"style":198},[1564],{"type":46,"value":1565},"8Gi",{"type":40,"tag":186,"props":1567,"children":1568},{"style":328},[1569],{"type":46,"value":671},{"type":40,"tag":186,"props":1571,"children":1572},{"class":188,"line":788},[1573,1578],{"type":40,"tag":186,"props":1574,"children":1575},{"style":322},[1576],{"type":46,"value":1577},"            limits",{"type":40,"tag":186,"props":1579,"children":1580},{"style":328},[1581],{"type":46,"value":367},{"type":40,"tag":186,"props":1583,"children":1584},{"class":188,"line":796},[1585,1590,1594],{"type":40,"tag":186,"props":1586,"children":1587},{"style":322},[1588],{"type":46,"value":1589},"              nvidia.com\u002Fgpu",{"type":40,"tag":186,"props":1591,"children":1592},{"style":328},[1593],{"type":46,"value":331},{"type":40,"tag":186,"props":1595,"children":1596},{"style":687},[1597],{"type":46,"value":1598}," 6\n",{"type":40,"tag":186,"props":1600,"children":1601},{"class":188,"line":812},[1602,1607],{"type":40,"tag":186,"props":1603,"children":1604},{"style":322},[1605],{"type":46,"value":1606},"          volumeMounts",{"type":40,"tag":186,"props":1608,"children":1609},{"style":328},[1610],{"type":46,"value":367},{"type":40,"tag":186,"props":1612,"children":1613},{"class":188,"line":829},[1614,1618,1622,1626],{"type":40,"tag":186,"props":1615,"children":1616},{"style":328},[1617],{"type":46,"value":650},{"type":40,"tag":186,"props":1619,"children":1620},{"style":322},[1621],{"type":46,"value":614},{"type":40,"tag":186,"props":1623,"children":1624},{"style":328},[1625],{"type":46,"value":331},{"type":40,"tag":186,"props":1627,"children":1628},{"style":198},[1629],{"type":46,"value":1630}," shared\n",{"type":40,"tag":186,"props":1632,"children":1633},{"class":188,"line":841},[1634,1639,1643],{"type":40,"tag":186,"props":1635,"children":1636},{"style":322},[1637],{"type":46,"value":1638},"              mountPath",{"type":40,"tag":186,"props":1640,"children":1641},{"style":328},[1642],{"type":46,"value":331},{"type":40,"tag":186,"props":1644,"children":1645},{"style":198},[1646],{"type":46,"value":1647}," \u002Fmnt\u002Fshared\n",{"type":40,"tag":186,"props":1649,"children":1650},{"class":188,"line":859},[1651,1656],{"type":40,"tag":186,"props":1652,"children":1653},{"style":322},[1654],{"type":46,"value":1655},"      volumes",{"type":40,"tag":186,"props":1657,"children":1658},{"style":328},[1659],{"type":46,"value":367},{"type":40,"tag":186,"props":1661,"children":1662},{"class":188,"line":876},[1663,1667,1671,1675],{"type":40,"tag":186,"props":1664,"children":1665},{"style":328},[1666],{"type":46,"value":609},{"type":40,"tag":186,"props":1668,"children":1669},{"style":322},[1670],{"type":46,"value":614},{"type":40,"tag":186,"props":1672,"children":1673},{"style":328},[1674],{"type":46,"value":331},{"type":40,"tag":186,"props":1676,"children":1677},{"style":198},[1678],{"type":46,"value":1630},{"type":40,"tag":186,"props":1680,"children":1681},{"class":188,"line":888},[1682,1687],{"type":40,"tag":186,"props":1683,"children":1684},{"style":322},[1685],{"type":46,"value":1686},"          persistentVolumeClaim",{"type":40,"tag":186,"props":1688,"children":1689},{"style":328},[1690],{"type":46,"value":367},{"type":40,"tag":186,"props":1692,"children":1693},{"class":188,"line":23},[1694,1699,1703],{"type":40,"tag":186,"props":1695,"children":1696},{"style":322},[1697],{"type":46,"value":1698},"            claimName",{"type":40,"tag":186,"props":1700,"children":1701},{"style":328},[1702],{"type":46,"value":331},{"type":40,"tag":186,"props":1704,"children":1705},{"style":198},[1706],{"type":46,"value":987},{"type":40,"tag":95,"props":1708,"children":1710},{"id":1709},"verify",[1711],{"type":46,"value":1712},"Verify",{"type":40,"tag":102,"props":1714,"children":1715},{},[1716,1735],{"type":40,"tag":106,"props":1717,"children":1718},{},[1719,1725,1727,1733],{"type":40,"tag":55,"props":1720,"children":1722},{"className":1721},[],[1723],{"type":46,"value":1724},"kubectl get workloads",{"type":46,"value":1726}," shows ",{"type":40,"tag":55,"props":1728,"children":1730},{"className":1729},[],[1731],{"type":46,"value":1732},"ADMITTED True",{"type":46,"value":1734}," once the job fits.",{"type":40,"tag":106,"props":1736,"children":1737},{},[1738,1740,1746],{"type":46,"value":1739},"An over-quota job stays ",{"type":40,"tag":55,"props":1741,"children":1743},{"className":1742},[],[1744],{"type":46,"value":1745},"suspend: true",{"type":46,"value":1747}," with no pod. This is correct queueing, not a failure. Read the reason:",{"type":40,"tag":175,"props":1749,"children":1751},{"className":177,"code":1750,"language":179,"meta":180,"style":180},"WORKLOAD=$(kubectl get workloads -o name | grep \u003Cjob-name>)\nkubectl get \"$WORKLOAD\" -o jsonpath='{.status.conditions[?(@.type==\"QuotaReserved\")].message}'\n",[1752],{"type":40,"tag":55,"props":1753,"children":1754},{"__ignoreMap":180},[1755,1822],{"type":40,"tag":186,"props":1756,"children":1757},{"class":188,"line":189},[1758,1764,1769,1773,1778,1783,1788,1792,1797,1802,1807,1812,1817],{"type":40,"tag":186,"props":1759,"children":1761},{"style":1760},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1762],{"type":46,"value":1763},"WORKLOAD",{"type":40,"tag":186,"props":1765,"children":1766},{"style":328},[1767],{"type":46,"value":1768},"=$(",{"type":40,"tag":186,"props":1770,"children":1771},{"style":193},[1772],{"type":46,"value":91},{"type":40,"tag":186,"props":1774,"children":1775},{"style":198},[1776],{"type":46,"value":1777}," get",{"type":40,"tag":186,"props":1779,"children":1780},{"style":198},[1781],{"type":46,"value":1782}," workloads",{"type":40,"tag":186,"props":1784,"children":1785},{"style":198},[1786],{"type":46,"value":1787}," -o",{"type":40,"tag":186,"props":1789,"children":1790},{"style":198},[1791],{"type":46,"value":614},{"type":40,"tag":186,"props":1793,"children":1794},{"style":328},[1795],{"type":46,"value":1796}," |",{"type":40,"tag":186,"props":1798,"children":1799},{"style":193},[1800],{"type":46,"value":1801}," grep",{"type":40,"tag":186,"props":1803,"children":1804},{"style":328},[1805],{"type":46,"value":1806}," \u003C",{"type":40,"tag":186,"props":1808,"children":1809},{"style":198},[1810],{"type":46,"value":1811},"job-nam",{"type":40,"tag":186,"props":1813,"children":1814},{"style":1760},[1815],{"type":46,"value":1816},"e",{"type":40,"tag":186,"props":1818,"children":1819},{"style":328},[1820],{"type":46,"value":1821},">)\n",{"type":40,"tag":186,"props":1823,"children":1824},{"class":188,"line":219},[1825,1829,1833,1837,1842,1846,1850,1855,1860,1865],{"type":40,"tag":186,"props":1826,"children":1827},{"style":193},[1828],{"type":46,"value":91},{"type":40,"tag":186,"props":1830,"children":1831},{"style":198},[1832],{"type":46,"value":1777},{"type":40,"tag":186,"props":1834,"children":1835},{"style":328},[1836],{"type":46,"value":552},{"type":40,"tag":186,"props":1838,"children":1839},{"style":1760},[1840],{"type":46,"value":1841},"$WORKLOAD",{"type":40,"tag":186,"props":1843,"children":1844},{"style":328},[1845],{"type":46,"value":533},{"type":40,"tag":186,"props":1847,"children":1848},{"style":198},[1849],{"type":46,"value":1787},{"type":40,"tag":186,"props":1851,"children":1852},{"style":198},[1853],{"type":46,"value":1854}," jsonpath=",{"type":40,"tag":186,"props":1856,"children":1857},{"style":328},[1858],{"type":46,"value":1859},"'",{"type":40,"tag":186,"props":1861,"children":1862},{"style":198},[1863],{"type":46,"value":1864},"{.status.conditions[?(@.type==\"QuotaReserved\")].message}",{"type":40,"tag":186,"props":1866,"children":1867},{"style":328},[1868],{"type":46,"value":1869},"'\n",{"type":40,"tag":102,"props":1871,"children":1872},{},[1873],{"type":40,"tag":106,"props":1874,"children":1875},{},[1876],{"type":46,"value":1877},"Freeing quota (a running job finishes or is deleted) auto-admits the next queued job. Do not resubmit.",{"type":40,"tag":95,"props":1879,"children":1881},{"id":1880},"rules-and-gotchas",[1882],{"type":46,"value":1883},"Rules and gotchas",{"type":40,"tag":102,"props":1885,"children":1886},{},[1887,1899,1919,1937,1957],{"type":40,"tag":106,"props":1888,"children":1889},{},[1890,1892,1897],{"type":46,"value":1891},"Pin the version, and use API ",{"type":40,"tag":55,"props":1893,"children":1895},{"className":1894},[],[1896],{"type":46,"value":163},{"type":46,"value":1898}," for v0.18.x.",{"type":40,"tag":106,"props":1900,"children":1901},{},[1902,1904,1910,1912,1917],{"type":46,"value":1903},"The ClusterQueue's ",{"type":40,"tag":55,"props":1905,"children":1907},{"className":1906},[],[1908],{"type":46,"value":1909},"coveredResources",{"type":46,"value":1911}," MUST include every resource a job requests. A GPU job that also requests CPU and memory is never admitted if the ClusterQueue only covers ",{"type":40,"tag":55,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":46,"value":144},{"type":46,"value":1918},". This is the most common failure.",{"type":40,"tag":106,"props":1920,"children":1921},{},[1922,1928,1930,1935],{"type":40,"tag":55,"props":1923,"children":1925},{"className":1924},[],[1926],{"type":46,"value":1927},"flavors[].name",{"type":46,"value":1929}," must exactly match a ",{"type":40,"tag":55,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":46,"value":289},{"type":46,"value":1936}," name, or the ClusterQueue admits nothing.",{"type":40,"tag":106,"props":1938,"children":1939},{},[1940,1942,1948,1950,1955],{"type":46,"value":1941},"The ",{"type":40,"tag":55,"props":1943,"children":1945},{"className":1944},[],[1946],{"type":46,"value":1947},"kueue.x-k8s.io\u002Fqueue-name",{"type":46,"value":1949}," label must name a ",{"type":40,"tag":55,"props":1951,"children":1953},{"className":1952},[],[1954],{"type":46,"value":305},{"type":46,"value":1956}," in the job's own namespace. A missing or wrong label means the job runs immediately, bypassing quota.",{"type":40,"tag":106,"props":1958,"children":1959},{},[1960,1962,1968],{"type":46,"value":1961},"Volcano and Kueue can coexist: Kueue gates jobs on the default scheduler; Volcano owns pods with ",{"type":40,"tag":55,"props":1963,"children":1965},{"className":1964},[],[1966],{"type":46,"value":1967},"schedulerName: volcano",{"type":46,"value":1969},". Do not point one job at both.",{"type":40,"tag":95,"props":1971,"children":1973},{"id":1972},"reference",[1974],{"type":46,"value":1975},"Reference",{"type":40,"tag":102,"props":1977,"children":1978},{},[1979,1990,2001,2012],{"type":40,"tag":106,"props":1980,"children":1981},{},[1982,1984],{"type":46,"value":1983},"Kueue docs: ",{"type":40,"tag":69,"props":1985,"children":1988},{"href":1986,"rel":1987},"https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002F",[73],[1989],{"type":46,"value":1986},{"type":40,"tag":106,"props":1991,"children":1992},{},[1993,1995],{"type":46,"value":1994},"Installation: ",{"type":40,"tag":69,"props":1996,"children":1999},{"href":1997,"rel":1998},"https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Finstallation\u002F",[73],[2000],{"type":46,"value":1997},{"type":40,"tag":106,"props":2002,"children":2003},{},[2004,2006],{"type":46,"value":2005},"Concepts (ResourceFlavor, ClusterQueue, LocalQueue, Workload): ",{"type":40,"tag":69,"props":2007,"children":2010},{"href":2008,"rel":2009},"https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Fconcepts\u002F",[73],[2011],{"type":46,"value":2008},{"type":40,"tag":106,"props":2013,"children":2014},{},[2015,2017],{"type":46,"value":2016},"Running jobs (Job, JobSet, RayJob, MPIJob): ",{"type":40,"tag":69,"props":2018,"children":2021},{"href":2019,"rel":2020},"https:\u002F\u002Fkueue.sigs.k8s.io\u002Fdocs\u002Ftasks\u002Frun\u002Fjobs\u002F",[73],[2022],{"type":46,"value":2019},{"type":40,"tag":2024,"props":2025,"children":2026},"style",{},[2027],{"type":46,"value":2028},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2030,"total":631},[2031,2052,2064,2083,2099,2113,2130,2140,2155,2169,2179,2191],{"slug":2032,"name":2032,"fn":2033,"description":2034,"org":2035,"tags":2036,"stars":2049,"repoUrl":2050,"updatedAt":2051},"blog-post","write structured blog posts","Write structured long-form blog posts with a consistent structure and SEO optimization.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2037,2040,2043,2046],{"name":2038,"slug":2039,"type":16},"Content Creation","content-creation",{"name":2041,"slug":2042,"type":16},"Marketing","marketing",{"name":2044,"slug":2045,"type":16},"SEO","seo",{"name":2047,"slug":2048,"type":16},"Writing","writing",1151,"https:\u002F\u002Fgithub.com\u002Ftogethercomputer\u002Ftogether-cookbook","2026-07-17T06:07:39.475433",{"slug":2053,"name":2053,"fn":2054,"description":2055,"org":2056,"tags":2057,"stars":2049,"repoUrl":2050,"updatedAt":2063},"social-media","create social media content","Create social media content including Twitter\u002FX threads, LinkedIn posts, and short-form updates.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2058,2059,2060,2062],{"name":2038,"slug":2039,"type":16},{"name":2041,"slug":2042,"type":16},{"name":2061,"slug":2053,"type":16},"Social Media",{"name":2047,"slug":2048,"type":16},"2026-07-17T06:07:38.455058",{"slug":2065,"name":2065,"fn":2066,"description":2067,"org":2068,"tags":2069,"stars":23,"repoUrl":24,"updatedAt":2082},"together-audio","process audio with Together AI","Text-to-speech and speech-to-text via Together AI, including REST, streaming, and realtime WebSocket TTS, plus transcription, translation, diarization, timestamps, and live STT. Reach for it whenever the user needs audio in or audio out on Together AI rather than chat generation, image or video creation, or model training.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2070,2073,2076,2079],{"name":2071,"slug":2072,"type":16},"Audio","audio",{"name":2074,"slug":2075,"type":16},"Speech","speech",{"name":2077,"slug":2078,"type":16},"Text-to-Speech","text-to-speech",{"name":2080,"slug":2081,"type":16},"Transcription","transcription","2026-07-26T05:49:08.246858",{"slug":2084,"name":2084,"fn":2085,"description":2086,"org":2087,"tags":2088,"stars":23,"repoUrl":24,"updatedAt":2098},"together-batch-inference","run asynchronous batch inference jobs","High-volume, asynchronous offline inference at up to 50% lower cost via Together AI's Batch API. Prepare JSONL inputs, upload files, create jobs, poll status, and download outputs. Reach for it whenever the user needs non-interactive bulk inference rather than real-time chat or evaluation jobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2089,2092,2095],{"name":2090,"slug":2091,"type":16},"Automation","automation",{"name":2093,"slug":2094,"type":16},"LLM","llm",{"name":2096,"slug":2097,"type":16},"Performance","performance","2026-07-17T06:08:23.919602",{"slug":2100,"name":2100,"fn":2101,"description":2102,"org":2103,"tags":2104,"stars":23,"repoUrl":24,"updatedAt":2112},"together-chat-completions","generate text with Together AI","Real-time and streaming text generation via Together AI's OpenAI-compatible chat\u002Fcompletions API, including multi-turn conversations, tool and function calling, structured JSON outputs, and reasoning models. Reach for it whenever the user wants to build or debug text generation on Together AI, unless they specifically need batch jobs, embeddings, fine-tuning, dedicated endpoints, dedicated containers, or GPU clusters.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2105,2108,2111],{"name":2106,"slug":2107,"type":16},"AI","ai",{"name":2109,"slug":2110,"type":16},"API Development","api-development",{"name":2093,"slug":2094,"type":16},"2026-07-26T05:49:11.244104",{"slug":2114,"name":2114,"fn":2115,"description":2116,"org":2117,"tags":2118,"stars":23,"repoUrl":24,"updatedAt":2129},"together-dedicated-containers","deploy custom inference containers on Together AI","Custom Dockerized inference workers on Together AI's managed GPU infrastructure. Build with Sprocket SDK, configure with Jig CLI, submit async queue jobs, and poll results. Reach for it whenever the user needs container-level control rather than a standard model endpoint or raw cluster.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2119,2120,2123,2126],{"name":18,"slug":19,"type":16},{"name":2121,"slug":2122,"type":16},"Deployment","deployment",{"name":2124,"slug":2125,"type":16},"Docker","docker",{"name":2127,"slug":2128,"type":16},"Machine Learning","machine-learning","2026-07-26T05:49:09.267892",{"slug":2131,"name":2131,"fn":2132,"description":2133,"org":2134,"tags":2135,"stars":23,"repoUrl":24,"updatedAt":2139},"together-dedicated-model-inference","deploy and operate Together AI models","Deploy and operate models on dedicated GPUs with Together AI's Dedicated Model Inference (DMI, the v2 dedicated endpoints API): beta endpoints, deployments, deployment profiles and hardware configs, autoscaling, traffic splitting, A\u002FB tests, shadow experiments, Prometheus metrics, and custom model or LoRA adapter uploads. Reach for it whenever the user mentions together beta endpoints or tg beta commands, client.beta.endpoints, DMI resources like ep_\u002Fdep_\u002Fcr_\u002Fml_ IDs, or wants production model serving with traffic management on Together AI. This is the current dedicated-hosting API and also covers migrating off the retired legacy v1 endpoints API (non-beta client.endpoints \u002F together endpoints), whose create and restart now return HTTP 403.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2136,2137,2138],{"name":18,"slug":19,"type":16},{"name":2121,"slug":2122,"type":16},{"name":2093,"slug":2094,"type":16},"2026-07-26T06:08:44.044039",{"slug":2141,"name":2141,"fn":2142,"description":2143,"org":2144,"tags":2145,"stars":23,"repoUrl":24,"updatedAt":2154},"together-embeddings","generate embeddings and build RAG pipelines","Dense vector embeddings, semantic search, RAG pipelines, and reranking via Together AI. Generate embeddings with open-source models and rerank results behind dedicated endpoints. Reach for it whenever the user needs vector representations or retrieval quality improvements rather than direct text generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2146,2147,2148,2151],{"name":2106,"slug":2107,"type":16},{"name":2093,"slug":2094,"type":16},{"name":2149,"slug":2150,"type":16},"RAG","rag",{"name":2152,"slug":2153,"type":16},"Search","search","2026-07-26T05:49:06.247906",{"slug":2156,"name":2156,"fn":2157,"description":2158,"org":2159,"tags":2160,"stars":23,"repoUrl":24,"updatedAt":2168},"together-evaluations","evaluate LLM outputs with Together AI","LLM-as-a-judge evaluation framework on Together AI. Classify, score, and compare model outputs, select judge models, use external-provider judges or targets, poll results and download reports. Reach for it whenever the user wants to benchmark outputs, grade responses, compare A\u002FB variants, or operationalize automated evaluations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2161,2164,2167],{"name":2162,"slug":2163,"type":16},"Benchmarking","benchmarking",{"name":2165,"slug":2166,"type":16},"Evals","evals",{"name":2093,"slug":2094,"type":16},"2026-07-26T05:49:07.241553",{"slug":2170,"name":2170,"fn":2171,"description":2172,"org":2173,"tags":2174,"stars":23,"repoUrl":24,"updatedAt":2178},"together-fine-tuning","fine-tune and adapt models on Together AI","LoRA, full fine-tuning, DPO preference tuning, VLM training, function-calling tuning, reasoning tuning, and BYOM uploads on Together AI. Reach for it whenever the user wants to adapt a model on custom data rather than only run inference, evaluate outputs, or host an existing model.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2175,2176,2177],{"name":2106,"slug":2107,"type":16},{"name":2093,"slug":2094,"type":16},{"name":2127,"slug":2128,"type":16},"2026-07-26T05:49:10.243114",{"slug":83,"name":83,"fn":2180,"description":2181,"org":2182,"tags":2183,"stars":23,"repoUrl":24,"updatedAt":2190},"orchestrate GPU clusters on Together AI","On-demand and reserved GPU clusters (H100, H200, B200) on Together AI with Kubernetes or Slurm orchestration, shared storage, credential management, and cluster scaling for ML and HPC jobs. Reach for it when the user needs multi-node compute or infrastructure control rather than a managed model endpoint.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2184,2185,2188,2189],{"name":18,"slug":19,"type":16},{"name":2186,"slug":2187,"type":16},"Cloud","cloud",{"name":21,"slug":22,"type":16},{"name":2127,"slug":2128,"type":16},"2026-07-26T05:49:05.252646",{"slug":2192,"name":2192,"fn":2193,"description":2194,"org":2195,"tags":2196,"stars":23,"repoUrl":24,"updatedAt":2209},"together-images","generate and edit images with Together AI","Text-to-image generation and image editing via Together AI, including FLUX and Kontext models, LoRA-based styling, reference-image guidance, and local image downloads. Reach for it whenever the user wants to generate or edit images on Together AI rather than create videos or build text-only chat applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2197,2200,2203,2206],{"name":2198,"slug":2199,"type":16},"Creative","creative",{"name":2201,"slug":2202,"type":16},"Design","design",{"name":2204,"slug":2205,"type":16},"Image Generation","image-generation",{"name":2207,"slug":2208,"type":16},"Multimodal","multimodal","2026-07-17T06:04:23.067755",{"items":2211,"total":590},[2212,2219,2225,2231,2238,2244,2251],{"slug":2065,"name":2065,"fn":2066,"description":2067,"org":2213,"tags":2214,"stars":23,"repoUrl":24,"updatedAt":2082},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2215,2216,2217,2218],{"name":2071,"slug":2072,"type":16},{"name":2074,"slug":2075,"type":16},{"name":2077,"slug":2078,"type":16},{"name":2080,"slug":2081,"type":16},{"slug":2084,"name":2084,"fn":2085,"description":2086,"org":2220,"tags":2221,"stars":23,"repoUrl":24,"updatedAt":2098},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2222,2223,2224],{"name":2090,"slug":2091,"type":16},{"name":2093,"slug":2094,"type":16},{"name":2096,"slug":2097,"type":16},{"slug":2100,"name":2100,"fn":2101,"description":2102,"org":2226,"tags":2227,"stars":23,"repoUrl":24,"updatedAt":2112},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2228,2229,2230],{"name":2106,"slug":2107,"type":16},{"name":2109,"slug":2110,"type":16},{"name":2093,"slug":2094,"type":16},{"slug":2114,"name":2114,"fn":2115,"description":2116,"org":2232,"tags":2233,"stars":23,"repoUrl":24,"updatedAt":2129},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2234,2235,2236,2237],{"name":18,"slug":19,"type":16},{"name":2121,"slug":2122,"type":16},{"name":2124,"slug":2125,"type":16},{"name":2127,"slug":2128,"type":16},{"slug":2131,"name":2131,"fn":2132,"description":2133,"org":2239,"tags":2240,"stars":23,"repoUrl":24,"updatedAt":2139},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2241,2242,2243],{"name":18,"slug":19,"type":16},{"name":2121,"slug":2122,"type":16},{"name":2093,"slug":2094,"type":16},{"slug":2141,"name":2141,"fn":2142,"description":2143,"org":2245,"tags":2246,"stars":23,"repoUrl":24,"updatedAt":2154},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2247,2248,2249,2250],{"name":2106,"slug":2107,"type":16},{"name":2093,"slug":2094,"type":16},{"name":2149,"slug":2150,"type":16},{"name":2152,"slug":2153,"type":16},{"slug":2156,"name":2156,"fn":2157,"description":2158,"org":2252,"tags":2253,"stars":23,"repoUrl":24,"updatedAt":2168},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2254,2255,2256],{"name":2162,"slug":2163,"type":16},{"name":2165,"slug":2166,"type":16},{"name":2093,"slug":2094,"type":16}]