Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple GPU support #3

Closed
siamezzze opened this issue Feb 11, 2017 · 2 comments
Closed

Multiple GPU support #3

siamezzze opened this issue Feb 11, 2017 · 2 comments
Assignees

Comments

@siamezzze
Copy link
Collaborator

Implement the algorithm to support multiple GPUs.

siamezzze added a commit that referenced this issue Feb 19, 2017
First attempt to do a multiple-GPU version (Re. #3).
Here, we make one extra step in computing the histograms. We first brak
down image into "stripes" (multiple rows). Then for each "stripe"
we compute its own histogram (that also includes breaking down to blocks
and then accumulating the resulting histograms).
To accumulate histograms from different stripes, one device takes the
"master" role, gathers "strip" histograms from all devices and accumulates
them.
Unfortunately, that "gathering" step cannot be performed on the machine
I am working on - it responds with "peer access not available" when I
try to enable peer access.
Of course, that device-to-device copying could be modeled with the
device-host-device, but that would create a tight bottleneck. I wonder
if in that case, accumulating on CPU would be faster than copying-to-cpu,
copying-to-another-device, accumulating, copying-to-cpu again.
I'll see if I find a better idea.
@siamezzze
Copy link
Collaborator Author

  1. Parallelize based on parts of image -- involves merging, that has to be done on CPU
    or
  2. Parallelize based on channels

@siamezzze
Copy link
Collaborator Author

Implemented in 69c3837 . Still no concurrency, though, but that is better tackled as additional issue ( #17). Technically, it works for multiple GPUs now, so I'm closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants