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

Updating the LLVM backend #300

Closed
2 of 4 tasks
tmcdonell opened this issue Feb 1, 2016 · 5 comments
Closed
2 of 4 tasks

Updating the LLVM backend #300

tmcdonell opened this issue Feb 1, 2016 · 5 comments
Labels
llvm backend accelerate-llvm

Comments

@tmcdonell
Copy link
Member

tmcdonell commented Feb 1, 2016

There have been a bunch of updates and bug fixes in the CUDA backend since the LLVM backends were originally written, and we should make sure we have got those fixes in LLVM too. This is a place to keep track of all the relevant changes.

@tmcdonell tmcdonell added the llvm backend accelerate-llvm label Feb 1, 2016
@tmcdonell
Copy link
Member Author

@robeverest do you remember any other bugs you have squashed that may be relevant? I only had a quick look through the history.

@tmcdonell
Copy link
Member Author

Similarly, we should back port any changes the LLVM backend made to CUDA. In particular, I did some experiments with different data structures for the memory tables and at that time IntMap was the winner (by a large margin, if I remember correctly). We should do more comprehensive tests though. Judy arrays are another candidate I intended to look into.

@robeverest
Copy link
Member

Having a look through the commit history, I can't see much that immediately springs to mind as needing to be moved over to the LLVM backend. The only thing that does, and I'm not sure whether you're including this under the new memory manager, is the tracking of resources other than allocated arrays (i.e. contexts, streams, programs and events) with lifetimes.

I would not be surprised if IntMaps were a faster alternative to hashtables. We should also do some testing to see how much time looking up arrays in the memory table takes of the total runtime. I have a suspicion that tracking the time the array was last accessed has added to that, because every read is now also a write.

Also, if there's anything you're unsure about with the memory manager API, just let me know.

@tmcdonell
Copy link
Member Author

Right, I saw that more things are wrapped in lifetimes now. I will look into that.

That is a good point. We should definitely do some benchmarking of the LRU in that case.

The memory manager is a bit hanky so I have been beating it with a sack full of doorknobs. So far it has not resisted arrest, but I will let you know how that goes.

tmcdonell added a commit to tmcdonell/accelerate-llvm that referenced this issue Feb 4, 2016
tmcdonell added a commit to tmcdonell/accelerate-llvm that referenced this issue Feb 4, 2016
@tmcdonell
Copy link
Member Author

Closing as the LLVM backends are feature complete at this point, and I don't think the remaining points should keep it open:

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

No branches or pull requests

2 participants