Skip to content

Commit 18b5e94

Browse files
authored
Merge pull request #300 from yeazelm/mig_profiles
Add RTX PRO 6000 profiles
2 parents 2e96085 + a8c5da1 commit 18b5e94

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

sources/nvidia-migmanager/src/main.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ enum NvidiaGpu {
9797
H100_80GB,
9898
H200_141GB,
9999
B200_180GB,
100+
RtxPro6000_96GB,
100101
Other,
101102
}
102103

@@ -210,6 +211,9 @@ fn get_gpu_model(pci_device_id: &str) -> Result<NvidiaGpu> {
210211
} else if pci_device_id.starts_with("0x2901") || pci_device_id.starts_with("0x2941") {
211212
info!("Found NVIDIA B200-180GB GPU.");
212213
Ok(NvidiaGpu::B200_180GB)
214+
} else if pci_device_id.starts_with("0x2BB5") {
215+
info!("Found NVIDIA RTX PRO 6000 Blackwell GPU.");
216+
Ok(NvidiaGpu::RtxPro6000_96GB)
213217
} else {
214218
warn!("Found NVIDIA Device but couldn't confirm variant.");
215219
Ok(NvidiaGpu::Other)
@@ -402,13 +406,17 @@ fn enable_mig(mig_settings: NvidiaMigConfig, gpu_info: &[MigGpu]) -> Result<()>
402406
Ok(NvidiaGpu::B200_180GB) => {
403407
process_mig_config::<NvidiaB200_180gbMigProfile>("b200.180gb", &mig_settings)
404408
}
409+
Ok(NvidiaGpu::RtxPro6000_96GB) => {
410+
process_mig_config::<NvidiaRtxPro6000_96gbMigProfile>("rtxpro6000.96gb", &mig_settings)
411+
}
405412
_ => {
406413
let known_gpus: Vec<&str> = vec![
407414
"a100.40gb",
408415
"a100.80gb",
409416
"h100.80gb",
410417
"h200.141gb",
411418
"b200.180gb",
419+
"rtxpro6000.96gb",
412420
];
413421
let mut filtered_map = mig_settings.profile;
414422
filtered_map.retain(|key, _| !known_gpus.contains(&key.as_str()));

sources/nvidia-migmanager/src/mig_profile.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,32 @@ impl MigGpuProfile for NvidiaB200_180gbMigProfile {
190190
}
191191
}
192192

193+
#[derive(Deserialize)]
194+
pub(crate) enum NvidiaRtxPro6000_96gbMigProfile {
195+
#[serde(alias = "1g.24gb")]
196+
#[serde(alias = "4")]
197+
Mig1g24gb,
198+
199+
#[serde(alias = "2g.48gb")]
200+
#[serde(alias = "2")]
201+
Mig2g48gb,
202+
203+
#[serde(alias = "4g.96gb")]
204+
#[serde(alias = "1")]
205+
#[serde(other)]
206+
Mig4g96gb,
207+
}
208+
209+
impl MigGpuProfile for NvidiaRtxPro6000_96gbMigProfile {
210+
fn get_mig_profile(&self) -> &str {
211+
match self {
212+
NvidiaRtxPro6000_96gbMigProfile::Mig4g96gb => "4g.96gb",
213+
NvidiaRtxPro6000_96gbMigProfile::Mig2g48gb => "2g.48gb,2g.48gb",
214+
NvidiaRtxPro6000_96gbMigProfile::Mig1g24gb => "1g.24gb,1g.24gb,1g.24gb,1g.24gb",
215+
}
216+
}
217+
}
218+
193219
pub(crate) trait MigGpuProfile: for<'de> Deserialize<'de> {
194220
fn get_mig_profile(&self) -> &str;
195221
}

0 commit comments

Comments
 (0)