Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

使用较弱的 GPU 或根本没有 GPU 来学习 CUDA?是的,你可以!

Posted on 2025-01-27

大家好!

今天,我想讨论一个我经常收到的问题,特别是在开始我的100 天 CUDA 挑战之后。这是 CUDA 学习者想知道的一个问题,对于那些无法接触到高端硬件的人来说至关重要。问题是:

我可以使用较弱的 GPU 学习 CUDA,还是根本不需要 GPU?

在这篇快速而简单的指南中,我将向您展示您绝对可以!最棒的是,您可以使用Google Colab来完成此操作,这是一个对大多数用户免费的平台。

对于许多人来说,Colab 似乎仅限于 Python 应用程序,但事实并非如此。通过一些简单的调整,您可以将其用于其他编程环境,包括 CUDA 开发。让我们开始吧!


使用 Colab 进行 CUDA:分步指南

本节将包括帮助您在 Colab 中编译和运行 CUDA 代码的实践步骤。

第1步:在Colab中编写CUDA文件

首先,在单元格中编写 CUDA 代码。但要将其另存为 .CU 文件,您需要在单元格上包含特殊前缀。方法如下:

  1. 在第一个单元格中,编写 CUDA 代码,但在代码之前包含以下行:

     %%writefile vector_multiplication.cu

    将vector_multiplication.cu替换为 CUDA 文件所需的名称。

    CUDA 文件的示例代码:

回复 2025-01-26 182856

代码:

 %%writefile vector_multiplication.cu #include <stdio.h> __global__ void multiplyVectors(float *a, float *b, float *c, int n) { int idx = threadIdx.x + blockIdx.x * blockDim.x; if (idx < n) { c[idx] = a[idx] * b[idx]; } } int main() { const int n = 512; float a[n], b[n], c[n]; int size = n * sizeof(float); float *dev_a, *dev_b, *dev_c; cudaMalloc((void **)&dev_a, size); cudaMalloc((void **)&dev_b, size); cudaMalloc((void **)&dev_c, size); for (int i = 0; i < n; ++i) { a[i] = b[i] = i; } cudaMemcpy(dev_a, a, size, cudaMemcpyHostToDevice); cudaMemcpy(dev_b, b, size, cudaMemcpyHostToDevice); multiplyVectors<<<2, 256>>>(dev_a, dev_b, dev_c, n); cudaMemcpy(c, dev_c, size, cudaMemcpyDeviceToHost); cudaFree(dev_a); cudaFree(dev_b); cudaFree(dev_c); for (int i = 0; i < 10; ++i) { printf("c[%d] = %f\n", i, c[i]); } return 0; }

第 2 步:编译 CUDA 文件

创建.cu文件后,您需要编译它。为此,您将使用nvcc ,它是NVIDIA CUDA 编译器。在新的代码单元中,写入以下内容: 回复 2025-01-26 183025

代码:

 !nvcc vector_multiplication.cu -o vector_multiplication

此命令告诉 Colab 将vector_multiplication.cu文件编译为名为vector_multiplication的可执行文件。


第 3 步:运行已编译的 CUDA 代码

现在您的代码已编译,您可以在新单元中使用以下命令运行它:
回复 2025-01-26 182925

代码:

 !./vector_multiplication

瞧!您已在 Colab 上成功编译并执行了 CUDA 代码。


为什么使用 Colab 进行 CUDA 学习?

  1. 辅助功能:
    如果您无法使用功能强大的 GPU,Colab 允许您使用免费的 NVIDIA GPU 来进行 CUDA 学习之旅。

  2. 性价比高:
    大多数用户无需花费一毛钱即可利用 Colab 的免费 G​​PU。

  3. 灵活性:
    使用上述方法,您还可以运行其他编程语言或框架,而不仅仅是 CUDA。


有用的提示

  • 检查 Colab 中的 GPU 可用性:
    在继续之前,请确保您的 Colab 环境设置为支持 GPU。要进行检查,请运行以下命令:

     !nvidia-smi

    如果您的 GPU 分配正确,您将在此处看到 GPU 型号和内存详细信息: 回复 2025-01-26 183443

  • 保持在限制范围内:
    Colab 的免费套餐有资源限制。除非您打算使用 GPU,否则请避免在 GPU 上运行。


这是我学到的

学习 CUDA 不需要昂贵或强大的 GPU。像 Colab 这样的平台使高性能计算比以往任何时候都更容易获得。通过使用我上面描述的简单技巧,您可以探索 CUDA 编程,而无需投资专门的硬件。


最后的想法

我希望这个快速教程向您展示,拥有较弱的 GPU(或根本没有 GPU)并不是进入 CUDA 世界的障碍。借助 Colab 等工具,世界各地的学习者和爱好者都可以轻松、轻松地学习 CUDA。

感谢您的阅读,祝您 CUDA 学习之旅顺利。有任何问题请随时问我。

下次再见,祝您编码愉快!

与我联系:
领英
GitHub

原文: https://hamdi.bearblog.dev/learning-cuda-with-a-weak-gpu-or-no-gpu-at-all-yes-you-can/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme