OpenCL: Shared library with offline compilation of the kernes, is it possible?
My question is in a similar spirit if this question. However, what I want is to compile a shared library leveraged by OpenCL kernels that were compiled offline for the same video card. is it possible? what are the considerations in order to save the binaries for the kernels? What are the considerations for the Makefile? a simple example of how that works will be very appreciated.
c makefile shared-libraries opencl
add a comment |
My question is in a similar spirit if this question. However, what I want is to compile a shared library leveraged by OpenCL kernels that were compiled offline for the same video card. is it possible? what are the considerations in order to save the binaries for the kernels? What are the considerations for the Makefile? a simple example of how that works will be very appreciated.
c makefile shared-libraries opencl
add a comment |
My question is in a similar spirit if this question. However, what I want is to compile a shared library leveraged by OpenCL kernels that were compiled offline for the same video card. is it possible? what are the considerations in order to save the binaries for the kernels? What are the considerations for the Makefile? a simple example of how that works will be very appreciated.
c makefile shared-libraries opencl
My question is in a similar spirit if this question. However, what I want is to compile a shared library leveraged by OpenCL kernels that were compiled offline for the same video card. is it possible? what are the considerations in order to save the binaries for the kernels? What are the considerations for the Makefile? a simple example of how that works will be very appreciated.
c makefile shared-libraries opencl
c makefile shared-libraries opencl
edited Nov 23 '18 at 9:31
asked Nov 23 '18 at 7:12
user3116936
6814
6814
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
It is possible.
You would need to write a simple program to create the binary and then dump it to a binary file, or use an offline compiler if your OpenCL SDK of choice provides one.
Follow this manual to embed the binary files into to your shared library: https://csl.name/post/embedding-binary-data/
Use
clCreateProgramWithBinary()
in your shared library with the embedded data objects.
As for the Makefile you can add a targets to create a kernel.bin
depending on a kernel.cl
source file using the offline compiler or self-written binary-generator. And then add the kernel.bin
as a dependency to your shared library target.
Hope that helps.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53442111%2fopencl-shared-library-with-offline-compilation-of-the-kernes-is-it-possible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It is possible.
You would need to write a simple program to create the binary and then dump it to a binary file, or use an offline compiler if your OpenCL SDK of choice provides one.
Follow this manual to embed the binary files into to your shared library: https://csl.name/post/embedding-binary-data/
Use
clCreateProgramWithBinary()
in your shared library with the embedded data objects.
As for the Makefile you can add a targets to create a kernel.bin
depending on a kernel.cl
source file using the offline compiler or self-written binary-generator. And then add the kernel.bin
as a dependency to your shared library target.
Hope that helps.
add a comment |
It is possible.
You would need to write a simple program to create the binary and then dump it to a binary file, or use an offline compiler if your OpenCL SDK of choice provides one.
Follow this manual to embed the binary files into to your shared library: https://csl.name/post/embedding-binary-data/
Use
clCreateProgramWithBinary()
in your shared library with the embedded data objects.
As for the Makefile you can add a targets to create a kernel.bin
depending on a kernel.cl
source file using the offline compiler or self-written binary-generator. And then add the kernel.bin
as a dependency to your shared library target.
Hope that helps.
add a comment |
It is possible.
You would need to write a simple program to create the binary and then dump it to a binary file, or use an offline compiler if your OpenCL SDK of choice provides one.
Follow this manual to embed the binary files into to your shared library: https://csl.name/post/embedding-binary-data/
Use
clCreateProgramWithBinary()
in your shared library with the embedded data objects.
As for the Makefile you can add a targets to create a kernel.bin
depending on a kernel.cl
source file using the offline compiler or self-written binary-generator. And then add the kernel.bin
as a dependency to your shared library target.
Hope that helps.
It is possible.
You would need to write a simple program to create the binary and then dump it to a binary file, or use an offline compiler if your OpenCL SDK of choice provides one.
Follow this manual to embed the binary files into to your shared library: https://csl.name/post/embedding-binary-data/
Use
clCreateProgramWithBinary()
in your shared library with the embedded data objects.
As for the Makefile you can add a targets to create a kernel.bin
depending on a kernel.cl
source file using the offline compiler or self-written binary-generator. And then add the kernel.bin
as a dependency to your shared library target.
Hope that helps.
answered Nov 26 '18 at 11:56
noma
653211
653211
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53442111%2fopencl-shared-library-with-offline-compilation-of-the-kernes-is-it-possible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown