原文:
www.kdnuggets.com/2016/04/basics-gpu-computing-data-scientists.html
作者:Taposh Dutta-Roy。
1. 谷歌网络安全证书 - 快速进入网络安全职业轨道。
2. 谷歌数据分析专业证书 - 提升你的数据分析水平
3. 谷歌 IT 支持专业证书 - 支持组织的 IT 部门
GPU 已成为图像分析的新核心。越来越多的数据科学家开始考虑使用 GPU 进行图像处理。在这篇文章中,我回顾了数据科学家需要的 GPU 基础知识,并列出了 文献 中讨论的 GPU 在算法中的适用性框架。
图形处理单元(GPU)最初是为了渲染图像而创建的。然而,由于其高性能和低成本,它们已成为图像处理的新标准。它们的应用领域包括图像修复、分割(标记)、去噪、过滤、插值和重建。对 GPU 的网络搜索结果是:“图形处理单元(GPU)是一个计算机芯片,执行快速的数学计算,主要用于渲染图像。”
Nvidia 的博客 定义了 GPU 计算是指使用图形处理单元(GPU)与 CPU 一起加速科学、分析、工程、消费者和企业应用程序。他们还说如果 CPU 是大脑,那么 GPU 是计算机的灵魂。
用于通用计算的 GPU 具有高度的数据并行架构。它们由多个核心组成。每个核心都有多个功能单元,例如算术和逻辑单元(ALUs)等。这些功能单元中的一个或多个用于处理每个执行线程。帮助线程的这些功能单元组称为**“线程处理器”**。GPU 中的所有线程处理器都执行相同的指令,因为它们共享相同的控制单元。这意味着 GPU 可以对图像的每个像素并行执行相同的指令。GPU 架构复杂且因制造商而异。GPU 市场的两个主要玩家是 Nvidia 和 AMD。Nvidia 将线程处理器称为 CUDA(计算统一设备架构)核心,AMD 称之为流处理器(SP)。
线程处理器与 CPU 核心之间的主要区别在于每个 CPU 核心可以在并行的情况下对不同的数据执行不同的指令,因为每个 CPU 核心有独立的控制单元。研究人员 将核心定义为具有独立控制流的处理单元。根据这个定义,科学家们 将共享相同控制单元的线程处理器组称为核心。GPU 设计为在一个芯片上适配多个线程处理器,而 CPU 则专注于高级控制单元和大缓存。
GPU 编程有两个主要框架——OpenCL 和 CUDA。CUDA 编程语言只能用于 Nvidia 显卡,而 OpenCL 是一个用于不同设备(包括 GPU、CPU 和 FPGA)的开放标准。几种图像处理库提供了 GPU 实现——OpenCV、ArrayFire、Nvidia Performance Primitives (NPP)、CUVLIB、Intel Integrated Performance Primitives、OpenCL Integrated Performance Primitives 和 Insight Took Kit (ITK)。其中较大的库有 OpenCV(支持 CUDA 和 OpenCL)和 ITK(仅支持 OpenCL)。
Erik Smistad 等 讨论了定义算法适用于 GPU 实现的 5 个因素。这些因素包括——数据并行性、线程数量、分支分歧、内存使用和同步。我创建了这个映射表以便于参考。
GPU 适用性决定您的算法
作为数据科学家,了解这些信息将帮助你选择适合你算法的 GPU。Nvidia CUDA 更为流行,因为大多数苹果笔记本电脑都配备了它,但其他品牌的 GPU 也在逐渐获得关注。如果你有任何问题或评论,请告诉我。
原文。
相关内容:
-
流行的深度学习工具 – 评测
-
在哪里学习深度学习 – 课程、教程、软件
-
CuDNN – 一个新的深度学习库
-
[生成式 AI 游乐场:Camel-5b 和 Open LLaMA 3B 的 LLMs](https://www.kdnuggets.com/2024/02/intel-generative-ai-playground-llms-with-camel-5b-and-open-llama-3b)
-
[生成式 AI 游乐场:Text-to-Image 稳定扩散](https://www.kdnuggets.com/2024/02/intel-generative-ai-playground-text-to-image-stable-diffusion)