|
Ublas : |
Subject: [ublas] [gsoc18] ublas project 3
From: Wei Wang (wangweiaperion_at_[hidden])
Date: 2018-01-28 06:20:15
Hi,
(I posted this mail in Boost Archive, but it seems I should send the mail to ublas mail list directly)
I'm Wei Wang, a CS master student focusing on high-performance computingÂ
field. `boost::ublas` project 3 adding GPU computation interests me a lotÂ
and I'd like to help add this feature to ublas. I find this project was alsoÂ
on last years' list and I'm curious if anyone did this before or on whichÂ
stage he/she has finished.Â
I've already read the initial source code of `ublas` in `boost 1.29`(I alsoÂ
read 1.66 API, and found it add one concept `container`, which used to beÂ
`bounded_array` and `unbounded_array`). I wrote a passage describing itsÂ
template parameter deduction relationships. Besides, I wrote a series blogsÂ
teaching how to use openCL efficiently with proper data partition and memoryÂ
usage.Â
This is my first time participating in GSOC, and I'm a bit of confused onÂ
following question:Â
1. Integrating openCL requires preparing for context, command_queue, eventÂ
and other "environment objects", should they also be included in this lib?Â
2. Take matrix matrix multiplication A*B for example. The last stage beforeÂ
matrix copy assignment is in `matrix_matrix_prob` class and its evaluationÂ
requires loop through all items on both matrix. If I want to add GPU computeÂ
features, I need to launch kernel for each computation expression at thisÂ
step, but it seems to be contradictory to `ublas`'s lazy evaluationÂ
rationale. Is it possible to bypass the rule?
3. What should I implement in the competency matrix class? Just integerÂ
matrix or template matrix class?Should I support current `ublas`Â
interface(those typedefs and traits)?Â
Best regards,Â
Wei WangÂ
åéèª Windows 10 çé®ä»¶åºç¨