gpt4 book ai didi

opencl - 继续在 nvidia gpu 上获取 CL_ INVALID_ KERNEL ARGS

转载 作者:行者123 更新时间:2023-12-03 20:53:32 26 4
gpt4 key购买 nike

我在 nvidia GPU 上使用 OpenCL,并且在尝试执行内核时不断收到 CL_INVALID_KERNEL_ARGS。我把它简化为一个非常简单的程序:

__kernel void foo(int a, __write_only image2d_t bar)
{
int 2 coords = {0, get_global_id(0)};
write_imagef(bar, coords, (float4)a);
}

使用以下 C 程序(为简洁起见,跳过初始化和错误检查位)

cl_kernel foo = clCreateKernel(program, "foo", &err);
int a = 42;
clSetKernelArg(foo, 0, sizeof(int), &a);

cl_image_format fmt = {CL_INTENSITY, CL_FLOAT};
cl_mem bar = clCreateImage2D(ctx, CL_MEM_WRITE_ONLY|CL_MEM_ALLOC_HOST_PTR, &fmt, 100, 1, 0, NULL, &err));
clSetKernelArg(foo, 1, sizeof(cl_mem), &bar);

size_t gws[] = {100};
size_t lws[] = {100};
cl_event 事件;
clEnqueueNDRangeKernel(队列, foo, 1, NULL, gws, lws, 0, NULL, &evt);
clFinish(队列);

clEnqueueNDRangeKernel 不断返回 CL_INVALID_KERNEL_ARGS。有任何想法吗?

最佳答案

https://stackoverflow.com/a/20566270/431528 .

How large are the buffer objects you are passing? __constant arguments are allocated from separate memory space and not from global memory so therefore you have probably ran out of constant memory



查询 CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE使用 clGetDeviceInfo以确保您不超过该尺寸。

关于opencl - 继续在 nvidia gpu 上获取 CL_ INVALID_ KERNEL ARGS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com