所有GPU都使用相同的架构吗?

 航19830_811 发布于 2023-02-08 10:43

我对nVIDIA CUDA有一些经验,现在我也在考虑学习openCL.我希望能够在任何GPU上运行我的程序.我的问题是:每个GPU都使用与nVIDIA相同的架构(多处理器,SIMT结构,全局内存,本地内存,寄存器,现金......)?

非常感谢你!

1 个回答
  • 从您的既定目标开始:

    "我希望能够在任何GPU上运行我的程序."

    那么是的,你应该学习OpenCL.

    在回答您的整体问题时,其他GPU供应商确实使用与Nvidia GPU不同的架构.事实上,单个供应商的GPU设计可能会有很大差异,具体取决于型号.

    这是给定OpenCL代码从一个GPU到下一个GPU的执行情况(取决于您的性能指标)的一个原因.实际上,为了在任何GPU上实现优化的性能,应该通过改变例如本地存储器大小来"分析"算法,以找到给定硬件设计的最佳算法设置.

    但即使存在这些硬件差异,OpenCL的目标仍然是提供所有设备(CPU,GPU,FPGA等)支持的核心功能,并包含允许供应商公开独特硬件功能的"扩展".尽管OpenCL无法隐藏硬件上的重大差异,但它确实保证了可移植性.这使得开发人员更容易从为一个设备调整的OpenCL程序开始,然后开发针对另一个体系结构优化的程序.

    为了使识别硬件差异的问题复杂化,CUDA使用的术语与OpenCL使用的术语不同,例如,以下内容在含义上大致相同:

    CUDA:           OpenCL: 
    Thread         Work-item
    Thread block    Work-group
    Global memory   Global memory
    Constant memory Constant memory
    Shared memory   Local memory
    Local memory    Private memory

    可以在此处找到更多的比较和讨论.

    2023-02-08 10:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有