【问题标题】:OpenCL memory allocation limit on GPUGPU 上的 OpenCL 内存分配限制
【发布时间】:2014-05-18 12:21:57
【问题描述】:

当在 OpenCL 中使用 clCreateBuffer 进行内存分配并且使用 clEnqueueWriteBuffer 进行写入时,如何决定分配哪个内存(CPU 内存或 GPU 内存) 如果正在分配GPU内存,如果分配大于内存限制,程序会失败吗? (或者会有分页之类的东西)

【问题讨论】:

    标签: opencl gpu


    【解决方案1】:

    如果请求的缓冲区大小大于设备的CL_DEVICE_MAX_MEM_ALLOC_SIZE(可以使用clGetDeviceInfo()函数查询),clCreateBuffer()将返回一个空缓冲区并将错误代码设置为CL_INVALID_BUFFER_SIZE

    有关更多信息,请参阅documentation clCreateBuffer()

    【讨论】:

    • 谢谢。你能告诉我它将尝试分配什么内存吗? (GPU 或 CPU)有没有默认值?
    • clCreateBuffer() 在设备上分配内存。如果您传递CL_MEM_ALLOC_HOST_PTR 标志,它还可以选择在主机上分配内存。
    猜你喜欢
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 2012-07-03
    • 1970-01-01
    • 2018-01-28
    • 2011-07-12
    • 1970-01-01
    相关资源
    最近更新 更多