Skip to content

Make CPU backend Async #832

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

Closed
65 of 66 tasks
umar456 opened this issue Jun 18, 2015 · 5 comments
Closed
65 of 66 tasks

Make CPU backend Async #832

umar456 opened this issue Jun 18, 2015 · 5 comments
Assignees
Labels
Milestone

Comments

@umar456
Copy link
Member

umar456 commented Jun 18, 2015

The OpenCL and CUDA backend functions in ArrayFire are asynchronous whereas the CPU backend is not. We need to unify the behavior of all of the backends so that they are consistent.

Function coverage w.r.t each file in <REPOSITORY_ROOT>/src/backend/cpu/*.cpp:

  • approx.cpp
  • Array.cpp
  • assign.cpp
  • bilateral.cpp
  • blas.cpp
  • cholesky.cpp
  • convolve.cpp
  • copy.cpp
  • diagonal.cpp
  • diff.cpp
  • fast.cpp
  • fftconvolve.cpp
  • fft.cpp
  • gradient.cpp
  • harris.cpp
  • hist_graphics.cpp
  • histogram.cpp
  • homography.cpp
  • hsv_rgb.cpp
  • identity.cpp
  • iir.cpp
  • image.cpp
  • index.cpp
  • inverse.cpp
  • iota.cpp
  • ireduce.cpp
  • join.cpp
  • lookup.cpp
  • lu.cpp
  • match_template.cpp
  • math.cpp
  • meanshift.cpp
  • medfilt.cpp
  • morph.cpp
  • nearest_neighbour.cpp
  • orb.cpp
  • plot3.cpp
  • plot.cpp
  • qr.cpp
  • random.cpp
  • range.cpp
  • reduce.cpp
  • regions.cpp
  • reorder.cpp
  • resize.cpp
  • rotate.cpp
  • scan.cpp
  • select.cpp
  • set.cpp
  • shift.cpp
  • sift.cpp
  • sobel.cpp
  • solve.cpp
  • sort_by_key.cpp
  • sort.cpp
  • sort_index.cpp
  • surface.cpp
  • susan.cpp
  • svd.cpp
  • tile.cpp
  • transform.cpp
  • transpose.cpp
  • triangle.cpp
  • unwrap.cpp
  • where.cpp
  • wrap.cpp
@umar456 umar456 added the CPU label Jun 18, 2015
@umar456 umar456 self-assigned this Jun 18, 2015
@umar456 umar456 added this to the 3.1.0 milestone Jun 18, 2015
@pavanky
Copy link
Member

pavanky commented Jun 18, 2015

I think this should be merged with #113

@9prady9
Copy link
Member

9prady9 commented Jun 18, 2015

Are computations going to be moved to a secondary thread ?

@umar456
Copy link
Member Author

umar456 commented Jun 18, 2015

@pavanky I think this is a different issue. We are not exposing the queue with this but eventually that issue will also need to be addressed.

@9prady9 Yeah, I think that is the only way.

@unbornchikken
Copy link
Member

And don't forget to make other blocking stuff asynchronous on GPU backends too. I mean compiling and/or loading kernels. Anything that blocks. Thanks.

@unbornchikken
Copy link
Member

Since you gotta create a worker thread, you could improve this methods with it to make'em non blocking on CUDA and OpenCL too: arrayfire/arrayfire-js#2

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

No branches or pull requests

5 participants