I've been working on setting up a 'smart paging' library for my OpenCL projects. Basically this involves checking:
- The number of de开发者_如何学编程vices
- Sizes of each one's memory tiers
- The largest power of two sized buffer that will fit into all devices of a group
- The largest power of two sized buffer that will communicate between host and devices
- The largest power of two sized buffer will fit into the biggest device(s).
- Various other things to use the left over memory asynchronously
- Various other things too general to list
These results determine aspects of the page size, timing, etc.. It is just what I came up with off the top of my head.
Are there any useful paradigms, architectures or other conventions which already accomplish efficient paging OR are there other properties I should be focused on or are any of these inadequate/irrelevant?
I think this multi-plaform library should solve your idea:
https://github.com/emrainey/OpenCL-Environment
精彩评论