CL_OUT_OF_HOST_MEMORY clBuildProgram

时间:2015-06-27 14:01:53

标签: java memory opencl lwjgl

我有这个代码(Java / LWJGL)来创建我的OpenCL程序。

try 
{
    CL.create();
} catch (LWJGLException e1)
{
    e1.printStackTrace();
}
platform = CLPlatform.getPlatforms().get(0);
devices = platform.getDevices(CL_DEVICE_TYPE_GPU);
try 
{
    context = CLContext.create(platform, devices, null, null, null);
} catch (LWJGLException e)
{
    e.printStackTrace();
}
queue = clCreateCommandQueue(context, devices.get(0), CL_QUEUE_PROFILING_ENABLE, null);

program = clCreateProgramWithSource(context, source, null);
checkCLError(clBuildProgram(program, devices.get(0), "", null));

kernel = clCreateKernel(program, "main", null);

这个OpenCL内核可以正常运行并且不会出错:

kernel void main(
                global const float *hitboxes,
                global const float *positions,
                global const float *rotations,
                global const float *velocities,
                global const float *colliders,
                global const float *weights,
                global float *answerPos,
                global float *answerRot,
                global float *answerVel
                )
{
    int id = get_global_id(0);
}

但是如果我向主方法或其他方法/结构添加任何代码,它会抛出" CL_OUT_OF_HOST_MEMORY"在clBuildProgram方法中。有人可以告诉我为什么吗?我有另一个OpenCL程序(也是LWJGL),基本相同。除了它有效。

0 个答案:

没有答案