gpt4 book ai didi

clGetProgramBuildInfo 不打印构建日志

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:19 26 4
gpt4 key购买 nike

我已经用 OpenCL 编写了代码。构建内核程序时出错。错误代码是-11。我尝试打印 BUILD LOG,但它没有打印正确的日志,而是生成了一些随机变量。这是那部分

//these are variable declarations
cl_device_id* devices;
cl_program kernelprgrm;
size_t size;
//these varaibles have already been assigned properly

//main code
clGetProgramBuildInfo(kernelprgrm,devices[i], CL_PROGRAM_BUILD_LOG ,0,NULL,&size);
char *buildlog=(char*)malloc(size);
clGetProgramBuildInfo(kernelprgrm,devices[i], CL_PROGRAM_BUILD_LOG ,size,buildlog,NULL);
printf("\n\nBuildlog: %s\n\n",buildlog);

它给出以下输出:-

Buildlog:   ���0

请帮助我获取正确的构建日志。谢谢

最佳答案

我在我的机器上测试了这段代码,它工作正常:

size_t len = 0;
cl_int ret = CL_SUCCESS;
ret = clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, &len);
char *buffer = calloc(len, sizeof(char));
ret = clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, len, buffer, NULL);

一旦它看起来与您的代码非常相似,就会有 2 处差异,这可能会产生错误:

  • 检查返回码
  • 检查数组中设备的索引。可能是您想从错误的设备获取日志。

关于clGetProgramBuildInfo 不打印构建日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31157337/

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