Skip to content

Regenerate bindings for NVML 12.9.79. Update device tests for new NVML_FI_DEV fields#133

Closed
blthayer wants to merge 1 commit into
rust-nvml:mainfrom
utilidata:nvml-v12.9
Closed

Regenerate bindings for NVML 12.9.79. Update device tests for new NVML_FI_DEV fields#133
blthayer wants to merge 1 commit into
rust-nvml:mainfrom
utilidata:nvml-v12.9

Conversation

@blthayer
Copy link
Copy Markdown

@blthayer blthayer commented Mar 20, 2026

Latest v12 bindings (12.9.79). Note this is a breaking change. See also: #134 and #135

Comment thread nvml-wrapper-sys/src/bindings.rs
@blthayer
Copy link
Copy Markdown
Author

Hey folks, a quick update: I'm not planning to pursue this much further, as instead I need CUDA 13 support (which has some backwards incompatible changes). But I'll leave this open for now in case it's useful. See also: #134

pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_13: u32 = 248;
pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_14: u32 = 249;
pub const NVML_FI_DEV_NVLINK_COUNT_FEC_HISTORY_15: u32 = 250;
pub const NVML_FI_PWR_SMOOTHING_ENABLED: u32 = 251;
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note the current v12 fields in main don't match the latest NVML v12 header...

@TheElectronWill
Copy link
Copy Markdown
Contributor

It's a pity that this is a breaking change…
Something should be done in nvml-wrapper to support both versions IMO, otherwise it will be very brittle. When we use nvml-wrapper, we don't know which version of NVML will be used at runtime.

@blthayer
Copy link
Copy Markdown
Author

It's a pity that this is a breaking change… Something should be done in nvml-wrapper to support both versions IMO, otherwise it will be very brittle. When we use nvml-wrapper, we don't know which version of NVML will be used at runtime.

@TheElectronWill - thanks for weighing in. I agree, this incompatibility should probably be handled via a runtime version check and match statement or something handled by this wrapper. That being said, the CUDA versioning is a little weird/complex and the breaking change occurred between versions of CUDA 13.0 (see #134). As far as I can tell (although I would need to dig deeper), some v13 field numbers slipped into this wrapper's v12 bindings about a year ago?

I'm not a maintainer of this repo, just opened a couple draft PRs to help illustrate the differences and give folks branches to use if they want.

@blthayer
Copy link
Copy Markdown
Author

FYI, the maintainers are working on a solution: #137

@blthayer
Copy link
Copy Markdown
Author

#137

@blthayer blthayer closed this Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants