gpt4 book ai didi

OpenCL 在 GTX 760 上只显示 6 个并行计算单元?

转载 作者:行者123 更新时间:2023-12-01 13:46:31 27 4
gpt4 key购买 nike

我认为这可能是一个非常愚蠢的问题,但我对 OpenCL 还很陌生,只是让它在配备 GTX 760 GPU 的台式计算机上运行。

现在,当我查询 OpenCL 的 CL_DEVICE_MAX_COMPUTE_UNITS 时,它说 GPU 上有 6 个。然而在板载 gpu(Intel HD Graphics 4600)上它说有 20 个。

这似乎有点令人失望,因为我希望 GTX 比板载 GPU 多得多?

或者 CL_DEVICE_MAX_COMPUTE_UNITS 不会直接转换为核心数?

最佳答案

您往往会想,“哦,我的设备有多少个内核?” “因此我将启动那么多线程。”

对于像 OpenCL/CUDA 这样的情况,这种思维方式是错误的。


核心包含有限数量的资源、内存和线程。根据每个“线程”将使用多少(因此,取决于代码/内核),核心将能够同时运行不同数量的线程。

所以第一个未知数是:“一个内核可以运行多少个线程?”,直到代码编译后才知道,不同版本的编译器/驱动程序会导致不同的结果。

如果您不知道每个核心有多少线程,那么知道“6x?=?”对您有什么用。您仍然不知道有多少线程可以并行运行,而且您永远也不会知道。当然你可以得到最大值,但不一定总是这样,那么它在实际应用中有什么用呢?


您必须认为 GPU 是未知数量的非常简单的 worker ,只能以 X 组的形式执行相同的任务。

唯一重要的问题是“有多少线程将在同一组中并行工作?”。因为您可以采用一些巧妙的合作技巧,让这些线程一起运行得更快。这就是“工作组规模”。

其他参数都是多余的。只会让你的应用程序更快或更慢。或者允许您同时运行多个任务。但它不应该是一个设计参数。

与CPU时钟速度相同,或者L1缓存在CPU编程中不是设计参数。或者有多少其他应用程序正在运行。

关于OpenCL 在 GTX 760 上只显示 6 个并行计算单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com