Buckets:

HuggingFaceDocBuilder's picture
|
download
raw
7.07 kB
# Kernels API Reference
## Main Functions
### get_kernel[[kernels.get_kernel]]
- **repo_id** (*str*) --
The Hub repository containing the kernel.
- **revision** (*str*, *optional*) --
The specific revision (branch, tag, or commit) to download. Cannot be used together with *version*.
- **version** (*int*, *optional*) --
The kernel version to download. Cannot be used together with *revision*.
Either *version* or *revision* must be specified.
- **backend** (*str*, *optional*) --
The backend to load the kernel for. Can only be *cpu* or the backend that Torch is compiled for.
The backend will be detected automatically if not provided.
- **user_agent** (*Union[str, dict]*, *optional*) --
The *user_agent* info to pass to *snapshot_download()* for internal telemetry.
- **trust_remote_code** (*bool | list[str]*, *optional*, defaults to *False*) --
Whether to allow loading kernels from untrusted organisations. When `False`,
only kernels from trusted organisations are allowed. When `True`, all
repositories are allowed. A list of strings will be used to verify signing
identities in a future release; for now it emits a warning and falls
back to the default trust check.*ModuleType*The imported kernel module.
Load a kernel from the kernel hub.
This function downloads a kernel to the local Hugging Face Hub cache directory (if it was not downloaded before)
and then loads the kernel.
Example:
```python
import torch
from kernels import get_kernel
activation = get_kernel("kernels-community/relu", version=1)
x = torch.randn(10, 20, device="cuda")
out = torch.empty_like(x)
result = activation.relu(out, x)
```
### get_local_kernel[[kernels.get_local_kernel]]
- **repo_path** (`Path`) --
The local path to the kernel repository.
- **backend** (`str`, *optional*) --
The backend to load the kernel for. Can only be `cpu` or the backend that Torch is compiled for.
The backend will be detected automatically if not provided.`ModuleType`The imported kernel module.
Import a kernel from a local kernel repository path.
### has_kernel[[kernels.has_kernel]]
- **repo_id** (`str`) --
The Hub repository containing the kernel.
- **revision** (`str`, *optional*) --
The specific revision (branch, tag, or commit) to download. Cannot be used together with `version`.
- **version** (`int`, *optional*) --
The kernel version to download. Cannot be used together with `revision`.
Either `version` or `revision` must be specified.
- **backend** (`str`, *optional*) --
The backend to load the kernel for. Can only be `cpu` or the backend that Torch is compiled for.
The backend will be detected automatically if not provided.`bool``True` if a kernel is available for the current environment.
Check whether a kernel build exists for the current environment (Torch version and compute framework).
### get_kernel_variants[[kernels.get_kernel_variants]]
- **repo_id** (`str`) --
The Hub repository containing the kernel.
- **revision** (`str`, *optional*) --
The specific revision (branch, tag, or commit) to inspect. Cannot be used together with `version`.
- **version** (`int`, *optional*) --
The kernel version to inspect. Cannot be used together with `revision`.
Either `version` or `revision` must be specified.
- **backend** (`str`, *optional*) --
The backend to resolve variants for. Can only be `cpu` or the backend that Torch is compiled for.
The backend will be detected automatically if not provided.`list[Decision]`One `VariantAccepted` or `VariantRejected` per build variant
in the repository, compatible variants first.
Resolve all build variants of a kernel against the current environment.
The decisions are sorted with compatible variants first, the most preferred
variant leading.
Example:
```python
from kernels import get_kernel_variants, VariantAccepted
for decision in get_kernel_variants("kernels-community/activation", version=1):
name = decision.variant.variant_str
if isinstance(decision, VariantAccepted):
print(f"{name}: compatible")
else:
print(f"{name}: rejected ({decision.reason})")
```
### get_loaded_kernels[[kernels.get_loaded_kernels]]
`list[LoadedKernel]`One [LoadedKernel](/docs/kernels/pr_675/en/api/kernels#kernels.LoadedKernel) per distinct kernel variant path
loaded in this process.
Return a snapshot of every kernel that has been loaded into the current process.
The returned list is a new list; mutating it does not affect the registry.
Example:
```python
from kernels import get_kernel, get_loaded_kernels
get_kernel("kernels-community/activation", version=1)
for loaded in get_loaded_kernels():
print(loaded.metadata.name, loaded.repo_info)
```
## Loading locked kernels
### load_kernel[[kernels.load_kernel]]
- **repo_id** (`str`) --
The Hub repository containing the kernel.
- **lockfile** (`Path`, *optional*) --
Path to the lockfile. If not provided, the lockfile will be loaded from the caller's package metadata.
- **backend** (`str`, *optional*) --
The backend to load the kernel for. Can only be `cpu` or the backend that Torch is compiled for.
The backend will be detected automatically if not provided.
- **revision** (`str`, *optional*) --
The specific revision (branch, tag, or commit) to download. Cannot be used together with `version`.`ModuleType`The imported kernel module.
Get a pre-downloaded, locked kernel.
If `lockfile` is not specified, the lockfile will be loaded from the caller's package metadata.
### get_locked_kernel[[kernels.get_locked_kernel]]
- **repo_id** (`str`) --
The Hub repository containing the kernel.
- **local_files_only** (`bool`, *optional*, defaults to `False`) --
Whether to only use local files and not download from the Hub.`ModuleType`The imported kernel module.
Get a kernel using a lock file.
## Classes
### LoadedKernel[[kernels.LoadedKernel]]
This dataclass provides information about a loaded kernel:
- `metadata` (`Metadata`): kernel metadata.
- `module` (`ModuleType`): the imported kernel module.
- `repo_info` (`kernels.utils.RepoInfo | None`): populated only for
kernels loaded via `get_kernel`. Loaders that work from a local path
(`get_local_kernel`) or a lockfile (`get_locked_kernel`, `load_kernel`)
leave this as `None`.
The metadata includes the following properties that describe a kernel:
- `id` (`str`): kernel identifier that is unique to the kernel version + backend.
- `name` (`str`): the name of the kernel.
- `version` (`int`): the version of the kernel.
- `license` (`str`): the license of the kernel.
- `upstream` (`str | None`): the original upstream repository of the kernel.
- `source` (`str | None`): the kernel-builder formatted source repository.
- `python_depends` (`list[str]`): required Python dependencies.
- `backend`: information about the kernel's backend.
### RepoInfo[[kernels.RepoInfo]]
This dataclass stores the origin of the kernel.
The following fields are available:
- `repo_id` (`str`): the Hub repository containing the kernel.
- `revision` (`str`): the specific revision of the kernel.

Xet Storage Details

Size:
7.07 kB
·
Xet hash:
1d03196ba5cb2ee08e7d18789bc5959482fdf9c6b67fb4a756e7aa1fdc121051

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.