【发布时间】:2014-02-05 20:29:53
【问题描述】:
是否可以在 OpenCL 中查询处理元素的数量(每个计算单元)?如果是,如何?我在clGetDeviceInfo doc page上没有找到对应的参数。
我不确定 处理元素 是否是标准术语。我从this video 得到这个词。
我想查询这些信息是因为我很好奇,而不是出于实际目的。
【问题讨论】:
-
对不同的最大线程数进行基准测试,然后找到获得最大占用/发布的线程。例如,1280 核心 GPU 将满足 1280(或 256 x 5)线程和多个线程。但它不喜欢 1024 线程、2048 线程、4096 线程,因为在此设置中始终存在空/等待空闲内核。另外不要忘记将线程组大小设置为 256(更小只会增加占用并使基准过时)。 256 的倍数的基准。如果 2048 和 2604 给出相同的结果,则将线程组大小减小到 128 并测试 2048-2604 的更窄范围。
-
@huseyintugrulbuyukisik 我是 OpenCL 的初学者。我认为您的评论意味着没有直接和简单的方法可以通过标准 OpenCL 进行查询,对吗?
-
你需要一个“更接近硬件”的 API,甚至可能需要像 GPU-z 一样使用 gpu 的驱动程序(这不是我希望的数据库硬编码的东西)。我第一次启动 opencl 时搜索了相同的内容,但找不到。即使在 compubench.com 也无法列出他们的核心号码。例如,HD7750 每个计算单元的内核数与 HD7970 相同(GCN 为 64)。 Nvidia 卡通常有 192 用于 600 系列。 Intel HD 使用 4 和 8 宽。版本。摆弄驱动程序以查询内核编号或使用数据库或获取计算单元编号并将其乘以 192/64。
-
@huseyintugrulbuyukisik “不可能”也是一个可以接受的答案。你应该考虑发布它。
标签: opencl