<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GPU on ByF (BaiFan) · Daily Deep Think</title><link>https://blog.baifan.site/en/tags/gpu/</link><description>Recent content in GPU on ByF (BaiFan) · Daily Deep Think</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>blog@baifan.site (ByF (BaiFan))</managingEditor><webMaster>blog@baifan.site (ByF (BaiFan))</webMaster><copyright>CC BY-NC 4.0</copyright><lastBuildDate>Wed, 20 Aug 2025 14:00:00 +0800</lastBuildDate><atom:link href="https://blog.baifan.site/en/tags/gpu/index.xml" rel="self" type="application/rss+xml"/><item><title>CPU, GPU, and Training Large Language Models</title><link>https://blog.baifan.site/en/gpu-accelerated-training-cuda-complete-guide/</link><pubDate>Wed, 20 Aug 2025 14:00:00 +0800</pubDate><author>blog@baifan.site (ByF (BaiFan))</author><guid>https://blog.baifan.site/en/gpu-accelerated-training-cuda-complete-guide/</guid><description>&lt;h1 class="relative group"&gt;AI Tutorial: CPU/GPU and Large Model Training&#10; &lt;div id="ai-tutorial-cpugpu-and-large-model-training" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ai-tutorial-cpugpu-and-large-model-training" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h1&gt;&#10;&lt;blockquote&gt;&lt;p&gt;This is a highly condensed reference: clearly structured, right to the point — covering CPU/GPU fundamentals, tensors and numerical precision, CUDA and PyTorch in practice, hardware selection, common interview questions, and a debugging checklist.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;hr&gt;&#10;&#10;&lt;h2 class="relative group"&gt;0. Quick Overview (30 Seconds)&#10; &lt;div id="0-quick-overview-30-seconds" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#0-quick-overview-30-seconds" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;CPU vs GPU&lt;/strong&gt;: CPUs excel at &lt;strong&gt;general-purpose/sequential&lt;/strong&gt; work; GPUs excel at &lt;strong&gt;massive parallelism&lt;/strong&gt; (matrices/vectors).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Large models need GPUs&lt;/strong&gt;: training/inference is fundamentally matrix multiplication and parallelization — exactly what a GPU&amp;rsquo;s high concurrency + high-bandwidth memory deliver.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Tensors and precision&lt;/strong&gt;: all data becomes tensors; precision (FP16/FP8) and &lt;strong&gt;quantization&lt;/strong&gt; (INT8/INT4) trade speed/VRAM against quality.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;The PyTorch GPU mantra&lt;/strong&gt;: &lt;code&gt;device = &amp;quot;cuda&amp;quot; if ...; model.to(device); data.to(device)&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Pick a GPU by VRAM first&lt;/strong&gt;: VRAM first, then bandwidth/compute; for production, prefer &lt;strong&gt;full-strength high-quality models&lt;/strong&gt; or cloud-hosted APIs.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&#10;&lt;h2 class="relative group"&gt;1. CPU vs GPU: Differences, Workloads, and Analogies&#10; &lt;div id="1-cpu-vs-gpu-differences-workloads-and-analogies" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-cpu-vs-gpu-differences-workloads-and-analogies" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&#10;&lt;h3 class="relative group"&gt;1.1 The One-Line Comparison&#10; &lt;div id="11-the-one-line-comparison" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#11-the-one-line-comparison" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Dimension&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;CPU&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;GPU&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Architecture&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Few cores, complex control flow&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Massive small cores, SIMT parallelism&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Excels at&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Branching/system tasks/small-scale compute&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Matrix multiplication, convolution, attention, graphics rendering&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Task model&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Time-sliced, low-latency switching&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Batch- and throughput-oriented&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Typical use&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Business logic, scheduling, I/O&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Main training/inference operators (GEMM, Conv, etc.)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&#10;&lt;h3 class="relative group"&gt;1.2 An Intuitive Analogy&#10; &lt;div id="12-an-intuitive-analogy" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#12-an-intuitive-analogy" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;CPU = a veteran expert&lt;/strong&gt;: meticulous thinking, does one thing at a time with fast switching.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;GPU = a massive army&lt;/strong&gt;: hordes of soldiers working simultaneously — built for parallel &lt;strong&gt;homogeneous small tasks&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h3 class="relative group"&gt;1.3 Optional Mermaid Diagram (CPU Execution vs GPU Parallelism)&#10; &lt;div id="13-optional-mermaid-diagram-cpu-execution-vs-gpu-parallelism" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#13-optional-mermaid-diagram-cpu-execution-vs-gpu-parallelism" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;flowchart LR&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; subgraph CPU[&amp;#34;CPU (sequential/few cores)&amp;#34;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; A1[Task1-SliceA] --&amp;gt; A2[Task2-SliceB] --&amp;gt; A3[Task3-SliceC]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; subgraph GPU[&amp;#34;GPU (parallel/many cores)&amp;#34;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; B1[Element1 compute]:::p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; B2[Element2 compute]:::p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; B3[Element3 compute]:::p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; B4[Element4 compute]:::p&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; end&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; classDef p fill:#e9f5ff,stroke:#3b82f6,stroke-width:1px;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;/div&gt;&#10;&lt;hr&gt;&#10;&#10;&lt;h2 class="relative group"&gt;2. Tensors, Precision, and Quantization (with Examples)&#10; &lt;div id="2-tensors-precision-and-quantization-with-examples" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-tensors-precision-and-quantization-with-examples" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&#10;&lt;h3 class="relative group"&gt;2.1 Tensor Hierarchy&#10; &lt;div id="21-tensor-hierarchy" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#21-tensor-hierarchy" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;0D&lt;/strong&gt;: scalar &lt;code&gt;3.14&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;1D&lt;/strong&gt;: vector &lt;code&gt;[1,2,3]&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;2D&lt;/strong&gt;: matrix (e.g. a 3×3 table)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;3D+&lt;/strong&gt;: still called a tensor (e.g. &lt;code&gt;batch×channel×height×width&lt;/code&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Image example&lt;/strong&gt;: a batch of 32 224×224 RGB images → &lt;code&gt;32×3×224×224&lt;/code&gt; (or &lt;code&gt;N×H×W×C&lt;/code&gt;, depending on the framework).&lt;/p&gt;</description></item></channel></rss>