No OpenCL advantage hints#21287
Open
jenshannoschwalm wants to merge 1 commit into
Open
Conversation
bbe7b78 to
a813ccd
Compare
Until now we had the per-device advantage setting; it was used to decide if tiled processing was worth to be done via OpenCL. That decision was based on the assumption, the overall amount of processed data on CPU vs. OpenCL knowing a "performance-ratio" would be a good bet. Unfortunately, this didn't work that good. 1. The "calibration" was difficult and thus the advantage feature was used by only very few people. 2. The assumption was often misleading. Still, on some systems like those with very small OpenCL memory but decent CPUs it might be worthwhile to have non-demanding modules (like exposure, temperature ...) running on the GPU but exclude those requiring a lot of graphics memory. So let's 1. remove the advantage feature 2. introduce a per-device entry in the conf database '***device***_nocl This can hold a comma-separated list of module->so names. Any module in this list will be executed on the CPU instead of OpenCL. It would be tempting, to allow users to toggle OpenCL processing on/off in the module header, but that would only make sense for systems with a single OpenCL device. - some minor code cleanup when reading/writing per-device conf, simplifications - improved logs for unified memory
a813ccd to
626a50c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Until now we had the per-device advantage setting; it was used to decide if tiled processing was worth to be done via OpenCL. That decision was based on the assumption, the overall amount of processed data on CPU vs. OpenCL knowing a "performance-ratio" would be a good bet.
Unfortunately, this didn't work that good.
Still, on some systems like those with very small OpenCL memory but decent CPUs it might be worthwhile to have non-demanding modules (like exposure, temperature ...) running on the GPU but exclude those requiring a lot of graphics memory.
So let's
It would be tempting, to allow users to toggle OpenCL processing on/off in the module header, but that would only make sense for systems with a single OpenCL device.