[gsoc18] ublas project 3

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[gsoc18] ublas project 3

Boost - Dev mailing list
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. How to reconcile that?
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



--
Sent from: http://boost.2283326.n4.nabble.com/Boost-Dev-f2600599.html

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: [gsoc18] ublas project 3

Boost - Dev mailing list
Hi,

as it seems you already spent some time working on gpu acceleration, you
could be a good candidate.
So the first thing to do is to work on the competency test. I expect
students to show me they can work with advanced concept as expression
templates and implement a small library by themselves. You don't need to be
compatible with ublas.

In the same time, you can start to work on writing your proposal: what you
want to achieve, how and when, with a planning, ressources, etc...

The proposal I've made on the wiki is very small students should work on a
much bigger document now. It's also part of the selection process by the
way.

Your big proposal is what we will submit to google at the end anyway.

For ublas, I will be the mentor so you can send it to me directly.

Best,
David

On Sat, Jan 27, 2018 at 11:15 PM, Aperjump via Boost <[hidden email]>
wrote:

> 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. How to reconcile that?
> 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
>
>
>
> --
> Sent from: http://boost.2283326.n4.nabble.com/Boost-Dev-f2600599.html
>
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/
> mailman/listinfo.cgi/boost
>

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost