gpt4 book ai didi

c++ - 如何在内核中定义/使用函数

转载 作者:行者123 更新时间:2023-11-28 07:06:35 26 4
gpt4 key购买 nike

考虑以下示例:

std::string kernelCode =
"void kernel copy(global int* image, global int* result)"
"{"
"result[get_global_id(0)] = foo(get_global_id(0));"
"}";

sources.push_back({kernelCode.c_str(), kernelCode.length()});

cl::Program program(context, sources);

if (program.build({defaultDevice}) != CL_SUCCESS)
{
std::cerr << "Error while building kernel: " <<
program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(defaultDevice) << std::endl;
exit(1);
}
else
{
qDebug() << "Kernel compiled succesfully\n";
}

如何使用或定义函数,例如:

int foo(int id)
{
//...
}

在内核中使用?

最佳答案

Source 可以包含多个函数,所以只需在前面添加:

std::string kernelCode =
"int foo(int id)"
"{"
" return id + 1;"
"}"
"void kernel copy(global int* image, global int* result)"
"{"
" result[get_global_id(0)] = foo(get_global_id(0));"
"}";

关于c++ - 如何在内核中定义/使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686320/

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