Skip to content

Commit b3e901c

Browse files
authored
Merge pull request #323 from arnaldo2792/p6-b300-qualification
Extend supported MIG profiles
2 parents 62a1157 + abbf80c commit b3e901c

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

sources/nvidia-migmanager/src/main.rs

Lines changed: 7 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+
B300_269GB,
100101
RtxPro6000_96GB,
101102
Other,
102103
}
@@ -214,6 +215,9 @@ fn get_gpu_model(pci_device_id: &str) -> Result<NvidiaGpu> {
214215
} else if pci_device_id.starts_with("0x2BB5") {
215216
info!("Found NVIDIA RTX PRO 6000 Blackwell GPU.");
216217
Ok(NvidiaGpu::RtxPro6000_96GB)
218+
} else if pci_device_id.starts_with("0x3182") {
219+
info!("Found NVIDIA B300-269GB GPU.");
220+
Ok(NvidiaGpu::B300_269GB)
217221
} else {
218222
warn!("Found NVIDIA Device but couldn't confirm variant.");
219223
Ok(NvidiaGpu::Other)
@@ -409,6 +413,9 @@ fn enable_mig(mig_settings: NvidiaMigConfig, gpu_info: &[MigGpu]) -> Result<()>
409413
Ok(NvidiaGpu::RtxPro6000_96GB) => {
410414
process_mig_config::<NvidiaRtxPro6000_96gbMigProfile>("rtxpro6000.96gb", &mig_settings)
411415
}
416+
Ok(NvidiaGpu::B300_269GB) => {
417+
process_mig_config::<NvidiaB300_269gbMigProfile>("b300.269gb", &mig_settings)
418+
}
412419
_ => {
413420
let known_gpus: Vec<&str> = vec![
414421
"a100.40gb",

sources/nvidia-migmanager/src/mig_profile.rs

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
use serde::Deserialize;
22

3+
pub(crate) trait MigGpuProfile: for<'de> Deserialize<'de> {
4+
fn get_mig_profile(&self) -> &str;
5+
}
6+
37
#[derive(Deserialize)]
48
pub(crate) enum NvidiaA100_40gbMigProfile {
59
#[serde(alias = "1g.5gb")]
@@ -216,6 +220,42 @@ impl MigGpuProfile for NvidiaRtxPro6000_96gbMigProfile {
216220
}
217221
}
218222

219-
pub(crate) trait MigGpuProfile: for<'de> Deserialize<'de> {
220-
fn get_mig_profile(&self) -> &str;
223+
#[derive(Deserialize)]
224+
pub(crate) enum NvidiaB300_269gbMigProfile {
225+
#[serde(alias = "1g.34gb")]
226+
#[serde(alias = "7")]
227+
Mig1g34gb,
228+
229+
#[serde(alias = "1g.67gb")]
230+
#[serde(alias = "4")]
231+
Mig1g67gb,
232+
233+
#[serde(alias = "2g.67gb")]
234+
#[serde(alias = "3")]
235+
Mig2g67gb,
236+
237+
#[serde(alias = "3g.135gb")]
238+
#[serde(alias = "2")]
239+
Mig3g135gb,
240+
241+
#[serde(alias = "4g.135gb")]
242+
Mig4g135gb,
243+
244+
#[serde(alias = "7g.269gb")]
245+
#[serde(alias = "1")]
246+
#[serde(other)]
247+
Mig7g269gb,
248+
}
249+
250+
impl MigGpuProfile for NvidiaB300_269gbMigProfile {
251+
fn get_mig_profile(&self) -> &str {
252+
match self {
253+
Self::Mig7g269gb => "7g.269gb",
254+
Self::Mig4g135gb => "4g.135gb",
255+
Self::Mig3g135gb => "3g.135gb,3g.135gb",
256+
Self::Mig2g67gb => "2g.67gb,2g.67gb,2g.67gb",
257+
Self::Mig1g67gb => "1g.67gb,1g.67gb,1g.67gb,1g.67gb",
258+
Self::Mig1g34gb => "1g.34gb,1g.34gb,1g.34gb,1g.34gb,1g.34gb,1g.34gb,1g.34gb",
259+
}
260+
}
221261
}

0 commit comments

Comments
 (0)