pub struct PyTorchInstaller { /* private fields */ }Expand description
The PyTorch installer.
Implementations§
Source§impl PyTorchInstaller
impl PyTorchInstaller
Sourcepub fn new(config: PyTorchConfig) -> Self
pub fn new(config: PyTorchConfig) -> Self
Create a new PyTorch installer with the given config.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default config.
Sourcepub fn index_url_for_rocm(&self, rocm_mm: &str) -> String
pub fn index_url_for_rocm(&self, rocm_mm: &str) -> String
Get the PyTorch index URL for a given ROCm major.minor version.
Matches the logic in the original script:
- ROCm 7.x: tries Radeon manylinux first, then PyTorch nightly
- ROCm 6.4+: uses PyTorch nightly builds
- ROCm 6.3: uses stable builds
- ROCm 6.0-6.2: uses stable builds for 6.2
- ROCm 5.x: uses stable builds for 5.7
- Fallback: ROCm 6.3 stable
Sourcepub fn nightly_index_url(&self, rocm_mm: &str) -> String
pub fn nightly_index_url(&self, rocm_mm: &str) -> String
Get the PyTorch nightly index URL for a given ROCm version.
Sourcepub fn radeon_index_url(&self, rocm_mm: &str) -> String
pub fn radeon_index_url(&self, rocm_mm: &str) -> String
Get the Radeon manylinux index URL.
Sourcepub fn fallback_index_url(&self) -> String
pub fn fallback_index_url(&self) -> String
Get the fallback index URL (ROCm 7.0 stable).
Sourcepub fn build_install_command(
&self,
rocm_mm: &str,
use_uv: bool,
target_version: Option<&str>,
) -> PipCommand
pub fn build_install_command( &self, rocm_mm: &str, use_uv: bool, target_version: Option<&str>, ) -> PipCommand
Construct pip install command for PyTorch with ROCm support.
This matches the original script’s pip install logic:
- Uses
uv pip installif uv is available - Uses
python3 -m pip installas fallback - Adds
--index-urlfor the correct ROCm wheel index - Adds
--break-system-packagesfor global installs - Installs torch, torchvision, torchaudio
target_version (the planner/manifest target) pins torch to an exact
version + --upgrade for update-driven installs, so pip actually advances
the installed wheel instead of no-op’ing on an already-satisfied one. A
None/empty target (fresh TUI install) leaves torch unpinned → latest.
PEP 440: torch==2.13.0 matches the ROCm wheel 2.13.0+rocm7.2, so the
pin resolves on the PyTorch ROCm index.
Sourcepub fn build_fallback_command(&self, use_uv: bool) -> PipCommand
pub fn build_fallback_command(&self, use_uv: bool) -> PipCommand
Construct the fallback command when primary install fails. Tries the ROCm 7.0 stable index.
Sourcepub fn build_common_deps_command(&self, use_uv: bool) -> PipCommand
pub fn build_common_deps_command(&self, use_uv: bool) -> PipCommand
Construct the common ML dependencies install command.
The original script installs torchsde and sentencepiece after PyTorch.
Auto Trait Implementations§
impl Freeze for PyTorchInstaller
impl RefUnwindSafe for PyTorchInstaller
impl Send for PyTorchInstaller
impl Sync for PyTorchInstaller
impl Unpin for PyTorchInstaller
impl UnsafeUnpin for PyTorchInstaller
impl UnwindSafe for PyTorchInstaller
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more