You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The library is providing interfaces for both cl1.2 and cl2.0, and these two interfaces have very different memory buffer management API's. The library has attempted to abstract the differences between these API's with an internal class called clMemRAII, but we can do better. clMemRAII is being upgraded over time with new functionality, but it is not growing very gracefully. It is treating buffer allocation and mapping device memory as 'the same'.
We would like to treat device memory as any old array of data from the hosts perspective, and we can create a clsparse::array class that implements the same interface as std::array. The primary difference would be that clsparse::array would encapsulate device memory, and we could access that memory through the host by using iterators (with all the expected performance degradations but at least the memory is easy to use and manage). With proper use of c++11/14 constructors, move semantics, operator='s and iterators, management of device memory could be as easy as host memory.
The text was updated successfully, but these errors were encountered:
I think the spirit of this enhancement has been merged into the codebase already. cl2.0 support is not yet present in the clsparse::vector class, but I think we should track that in a seperate issue.
The library is providing interfaces for both cl1.2 and cl2.0, and these two interfaces have very different memory buffer management API's. The library has attempted to abstract the differences between these API's with an internal class called clMemRAII, but we can do better. clMemRAII is being upgraded over time with new functionality, but it is not growing very gracefully. It is treating buffer allocation and mapping device memory as 'the same'.
We would like to treat device memory as any old array of data from the hosts perspective, and we can create a clsparse::array class that implements the same interface as std::array. The primary difference would be that clsparse::array would encapsulate device memory, and we could access that memory through the host by using iterators (with all the expected performance degradations but at least the memory is easy to use and manage). With proper use of c++11/14 constructors, move semantics, operator='s and iterators, management of device memory could be as easy as host memory.
The text was updated successfully, but these errors were encountered: