Buckets:

hf-doc-build/doc-dev / kernels /pr_321 /en /why_kernels.html
rtrm's picture
download
raw
8 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Why kernels?&quot;,&quot;local&quot;:&quot;why-kernels&quot;,&quot;sections&quot;:[],&quot;depth&quot;:1}">
<link href="/docs/kernels/pr_321/en/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/entry/start.1f78d9f0.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/scheduler.f3b1e791.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/singletons.663a7a84.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/paths.da1bc0f4.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/entry/app.62a7640e.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/preload-helper.4fcb8189.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/index.023a9934.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/nodes/0.e9a9f09a.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/each.e59479a4.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/nodes/31.f0b5926b.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/CopyLLMTxtMenu.50a4d06c.js">
<link rel="modulepreload" href="/docs/kernels/pr_321/en/_app/immutable/chunks/MermaidChart.svelte_svelte_type_style_lang.0b509b2e.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Why kernels?&quot;,&quot;local&quot;:&quot;why-kernels&quot;,&quot;sections&quot;:[],&quot;depth&quot;:1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"><div class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg></span> <span>Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg></button></div> </div> <h1 class="relative group"><a id="why-kernels" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#why-kernels"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Why kernels?</span></h1> <p data-svelte-h="svelte-lrlyn5">Our goal with the <code>kernels</code> package is manifold:</p> <ul data-svelte-h="svelte-b2eusu"><li>Establish a standard way of structuring and building kernels. The
<code>builder</code> component takes kernel source in a pre-defined layout, with
a declarative build configuration, and produces compiled kernels for
a wide matrix of compute backends (e.g., CUDA, ROCM, and XPU), operating
systems, and architectures. The builder also enforces the reproducibility of
the build environment and build steps.</li> <li>Provide a standard way of distributing and loading kernels. Kernels
are distributed through the Hugging Face Hub and can be loaded through
the kernels Python package. <code>kernels</code> fetches the right kernel build for
the system that it runs, avoiding long local, sometimes hours-long,
builds. It also supports loading of multiple versions of the same
kernel, effectively eliminating “dependency hell”.</li> <li>Provide kernel builds across all supported PyTorch versions,
accelerators, and capabilities. This is particularly important
because local kernel builds can become unusable once the base
machine learning framework (e.g., PyTorch) is updated to a recent version.</li></ul> <p data-svelte-h="svelte-1nzyvvq">Additionally, there are several advantages to hosting the pre-built
kernels on the Hugging Face Hub platform:</p> <ul data-svelte-h="svelte-1p0x3wc"><li>Trends — kinds of models using a kernel more than others,
<a href="https://huggingface.co/spaces" rel="nofollow">applications</a> using a particular kernel, etc.</li> <li>Users immediately know if their hardware supports a kernel
without having to run any installation locally.</li> <li>General features of the Hub platform:
<ul><li>Seamless versioning</li> <li>Fast download and upload powered by <a href="https://huggingface.co/docs/hub/xet/index" rel="nofollow">XET</a></li> <li>Visibility into the download stats</li></ul></li></ul> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/kernels/blob/main/docs/source/why_kernels.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg> <span data-svelte-h="svelte-zjs2n5"><span class="underline">Update</span> on GitHub</span></a> <p></p>
<script>
{
__sveltekit_1pmujtk = {
assets: "/docs/kernels/pr_321/en",
base: "/docs/kernels/pr_321/en",
env: {}
};
const element = document.currentScript.parentElement;
const data = [null,null];
Promise.all([
import("/docs/kernels/pr_321/en/_app/immutable/entry/start.1f78d9f0.js"),
import("/docs/kernels/pr_321/en/_app/immutable/entry/app.62a7640e.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 31],
data,
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
8 kB
·
Xet hash:
e98897f3ff98fc7f74b5357025db3443b2d8a791bc85abf58ceb13517beff5ef

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