首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JOCL确定GPU上可用的全局内存?

使用JOCL确定GPU上可用的全局内存?
EN

Stack Overflow用户
提问于 2011-05-07 00:31:22
回答 2查看 860关注 0票数 1

我正在写一个在GPU上运行的JOCl.org (和jogamps jocl不同)。我们处理了足够多的数据,我需要小心地保持在GPU的全局内存限制之下。为此,我需要一种以编程方式确定GPU有多少内存的方法。我假设必须有一个简单的JOCL方法/变量来做这件事,但由于某些原因,我似乎无法弄清楚它是什么。我看过CL.CL_MEM_SIZE和CL_DEVICE_GLOBAL_MEM_CACHE_SIZE,但它们都返回4100左右的内容;我知道我目前使用的图形卡应该有512MB。

而且,我似乎不能使用我应该使用的内存。在我最坏的情况下,我必须运行一个内核来处理2^22个浮点数的帧,并且在内部需要的数据是帧大小的两倍。如果我尝试缓存两个帧(因此2个帧* 2^22 * 2^2字节/浮点数*2,开销= 2^26),我可以毫不费力地缓存,但是当我增加缓存以便一次处理三个帧(或2^25*3)时,我似乎耗尽了内存。然而,我认为我应该只使用我的512MB全局内存中的大约100个。我相信我在不使用的时候释放了适当的内存,但显然我要么做错了什么,要么曲解了GPU宣传的512MB。有人能帮我解释一下这个困惑吗?

有没有一种方法可以让我分析GPU以了解实际的内存使用情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-09 21:26:31

CL.CL_MEM_SIZE和CL_DEVICE_GLOBAL_MEM_CACHE_SIZE是常量值,用作clGetDeviceInfo查询设备的参数。

http://www.jocl.org/doc/org/jocl/CL.html#clGetDeviceInfo(org.jocl.cl_device_id, int, long, org.jocl.Pointer, long[])

clGetDeviceInfo方法是您查询设备信息的方法。它返回您在param_name中请求的参数值。该链接列出了所有可用的参数名称,并提供了简要说明。(CL_DEVICE_GLOBAL_MEM_SIZE应该就是你要找的那个)。

票数 0
EN

Stack Overflow用户

发布于 2011-05-07 06:07:03

查看webstart CLInfo应用程序:http://jogamp.org/deployment/webstart-next/jocl-demos/clinfo.jnlp (项目:http://jogamp.org/jocl-demos/www/)或启动命令行版本:

代码语言:javascript
运行
复制
java -jar jocl.jar:gluegen-rt.jar -Djava.library.path="path/to/jocl/libs:path/to/gluegen-rt/libs" com.jogamp.opencl.util.CLInfo

它将显示所有设备属性的完整读数。CL_DEVICE_GLOBAL_MEM_SIZE和CL_DEVICE_MAX_MEM_ALLOC_SIZE属性可能就是您要寻找的属性。

编辑属性的文档如下:http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceInfo.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5914333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档