大家好!
今天,我想讨论一个我经常收到的问题,特别是在开始我的100 天 CUDA 挑战之后。这是 CUDA 学习者想知道的一个问题,对于那些无法接触到高端硬件的人来说至关重要。问题是:
我可以使用较弱的 GPU 学习 CUDA,还是根本不需要 GPU?
在这篇快速而简单的指南中,我将向您展示您绝对可以!最棒的是,您可以使用Google Colab来完成此操作,这是一个对大多数用户免费的平台。
对于许多人来说,Colab 似乎仅限于 Python 应用程序,但事实并非如此。通过一些简单的调整,您可以将其用于其他编程环境,包括 CUDA 开发。让我们开始吧!
使用 Colab 进行 CUDA:分步指南
本节将包括帮助您在 Colab 中编译和运行 CUDA 代码的实践步骤。
第1步:在Colab中编写CUDA文件
首先,在单元格中编写 CUDA 代码。但要将其另存为 .CU 文件,您需要在单元格上包含特殊前缀。方法如下:
-
在第一个单元格中,编写 CUDA 代码,但在代码之前包含以下行:
%%writefile vector_multiplication.cu
将
vector_multiplication.cu
替换为 CUDA 文件所需的名称。CUDA 文件的示例代码:
代码:
%%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 编译器。在新的代码单元中,写入以下内容:
代码:
!nvcc vector_multiplication.cu -o vector_multiplication
此命令告诉 Colab 将vector_multiplication.cu
文件编译为名为vector_multiplication
的可执行文件。
第 3 步:运行已编译的 CUDA 代码
现在您的代码已编译,您可以在新单元中使用以下命令运行它:
代码:
!./vector_multiplication
瞧!您已在 Colab 上成功编译并执行了 CUDA 代码。
为什么使用 Colab 进行 CUDA 学习?
-
辅助功能:
如果您无法使用功能强大的 GPU,Colab 允许您使用免费的 NVIDIA GPU 来进行 CUDA 学习之旅。 -
性价比高:
大多数用户无需花费一毛钱即可利用 Colab 的免费 GPU。 -
灵活性:
使用上述方法,您还可以运行其他编程语言或框架,而不仅仅是 CUDA。
有用的提示
-
检查 Colab 中的 GPU 可用性:
在继续之前,请确保您的 Colab 环境设置为支持 GPU。要进行检查,请运行以下命令:!nvidia-smi
如果您的 GPU 分配正确,您将在此处看到 GPU 型号和内存详细信息:
-
保持在限制范围内:
Colab 的免费套餐有资源限制。除非您打算使用 GPU,否则请避免在 GPU 上运行。
这是我学到的
学习 CUDA 不需要昂贵或强大的 GPU。像 Colab 这样的平台使高性能计算比以往任何时候都更容易获得。通过使用我上面描述的简单技巧,您可以探索 CUDA 编程,而无需投资专门的硬件。
最后的想法
我希望这个快速教程向您展示,拥有较弱的 GPU(或根本没有 GPU)并不是进入 CUDA 世界的障碍。借助 Colab 等工具,世界各地的学习者和爱好者都可以轻松、轻松地学习 CUDA。
感谢您的阅读,祝您 CUDA 学习之旅顺利。有任何问题请随时问我。
下次再见,祝您编码愉快!
原文: https://hamdi.bearblog.dev/learning-cuda-with-a-weak-gpu-or-no-gpu-at-all-yes-you-can/