【问题标题】:AMD 7970 reporting incorrect DEVICE_GLOBAL_MEM_SIZEAMD 7970 报告不正确的 DEVICE_GLOBAL_MEM_SIZE
【发布时间】:2013-04-25 03:44:12
【问题描述】:

我正在 AMD HD 7970(蓝宝石 GHz 版)上测试一些 OpenCL 图像处理。这个特殊的卡有 6GB 的板载 RAM,但是这个调用:

clGetDeviceInfo(device, CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(buf_ulong), &buf_ulong, NULL);

返回值 2,147,483,648。

这个 OpenCL 调用返回卡的实际内存大小是否存在问题?此卡是否有某种设置会限制可使用的 OpenCL 内存量?

任何见解都会有所帮助!

【问题讨论】:

  • 这看起来很像实际结果的低 32 位。您是否排除了将值放入某个 32 位变量中的可能性?在那种情况下,我的钱会花在驱动程序上,错误地在某处使用 32 位变量
  • 变量被放入一个uint64_t。
  • 所以当你使用 uint64 时它会报告一个不同的数字?价值是多少?
  • @mfa:没有设置“GPU_MAX_ALLOC_PERCENT=100”环境变量,它仍然报告 2147483648。一旦设置了该环境变量,一切正常,我能够看到所有内存。

标签: memory opencl gpu amd-processor


【解决方案1】:

我的 HD7970(3GB 版,Sapphire GHz 版)也报告了 2GB 的可用内存。报告内存少于总量是很正常的(操作系统和驱动程序必须保留一些内存),但是对于 6GB 版本,您的值看起来确实太低了。

在较旧的 AMD 驱动程序上,可以通过几个 env 设置为 OpenCL 保留的内存量。变量。但是,这是一项从未得到官方支持的功能,恐怕在最新的驱动程序上不再可用。

【讨论】:

  • 环境变量就是答案。设置“GPU_MAX_ALLOC_PERCENT=100”允许完全分配卡上可用的 6GB。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 2012-03-08
  • 1970-01-01
相关资源
最近更新 更多