为什么深度学习和神经网络要使用 GPU?
本篇文章的目标是帮助初学者了解 CUDA 是什么,以及它如何与 PyTorch 配合使用,更重要的是,我们为何在神经网络编程中使用 GPU。
图形处理单元 (GPU)
要了解 CUDA,我们需要对图形处理单元 (GPU) 有一定的了解。GPU 是一种擅长处理 专门化 计算的处理器。
这与中央处理单元 (CPU) 形成对比,CPU 是一种擅长处理 通用 计算的处理器。CPU 是为我们的电子设备上大多数典型计算提供动力的处理器。
GPU 可以比 CPU 快得多,但并非总是如此。GPU 相对于 CPU 的速度取决于正在执行的计算类型。最适合 GPU 的计算类型是能够 并行 进行的计算。
并行计算
并行计算是一种将特定计算分解为可以同时进行的独立较小计算的计算类型。然后将得到的计算结果重新组合或同步,以形成原始较大计算的结果。
一个较大任务可以分解为的任务数量取决于特定硬件上包含的内核数量。内核是实际在给定处理器内进行计算的单元,CPU 通常有四、八或十六个内核,而 GPU 可能有数千个内核。
还有其他一些技术规格也很重要,但本描述旨在传达一般概念。
有了这些基础知识,我们可以得出结论,使用 GPU 进行并行计算,并且最适合使用 GPU 解决的任务是能够并行完成的任务。如果计算可以并行完成,我们就可以通过并行编程方法和 GPU 加速我们的计算。