Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-22 Thread Philippe Tillet
Hey everybody,

My recent advances on auto-tuning gave birth to a new GSoC idea in my mind.
More exactly, I've come up with something more complete around
(crowd-sourced) auto-tuning and the GUI.

This would include:

- Developing a portable auto-tuning GUI (as of now : BLAS1 / Dense BLAS2 /
Dense BLAS3)
- Building a better data-base representation for our profiles ; I feel
like manually feeling a map will become awful as we will obtain more data.
Ideally, it would be about integrating ViennaCL with cTuning. This would
allow us to build a centralized data-base and to easily build
statistics/graphs of our data, and in the future to create machine learning
models for these datasets.
- Filling the database with as many devices as possible.

What do you think about it?

Best regards,
Philippe



2014-02-16 21:02 GMT+01:00 Evan Bollig bol...@gmail.com:

 No real preference. I do want to play with some of the new features in
 CUDA 6 this summer. Aside from that, the SpMM is of interest to the other
 groups I work with. I think Petsc bindings would be a good project. I met
 with a CFD group on Friday to discuss optimization and scaling improvements
 in their petsc code. Seems to be a big item of interest for many.

 -E


 On Saturday, February 15, 2014, Karl Rupp r...@iue.tuwien.ac.at wrote:

 Hi Evan,

  Fyi, I'm willing to contribute to the GSoC effort as well. I can sponsor

 access to the variety of hardware we have at the Minnesota
 Supercomputing Institute. Including single and multi-GPU nodes and
 workstations (m2070s, k20s, k2s, and quadro variants), single and multi
 Xeon phi 5110p nodes, and nehalem and sandy bridge nodes.

 Let me know if the need arises. I'm also open to mentor if needed.


 awesome, Evan, that would be absolutely great. Do you have any particular
 project you'd like to see addressed? With multiple nodes available it would
 also be interesting to work on the PETSc-ViennaCL bindings. (This would
 certainly require a fairly experienced student)

 Best regards,
 Karli





 On Saturday, February 15, 2014, Karl Rupp r...@iue.tuwien.ac.at
 mailto:r...@iue.tuwien.ac.at wrote:

 Hi Philippe,

I completely agree, concerning matrix-free implementations of
 the linear
   solver.
  
   Their absence is the very reason why I had to reimplement solvers
 for
   UMinTL.

 I assume you are aware that you can overload viennacl::linalg::prod()
 for whatever custom 'matrix' type you pass to solve()?


   Furthermore, some other fancy stopping criterions may be
   provided. For example, some algorithms in unconstrained
 optimization use
   CG on an indefinite matrix, and abort the solver once p^TAp  0.
 There
   are also some probabilistic stopping criterions for CG when the
   matrix-free implementation is an estimator of the true
 matrix-vector
   product. In the end, the CG I ended up with for UMinTL is pretty
 big and
   flexible, and I think it would be a good thing to have the same
 thing
   within ViennaCL.

 The monitoring capabilities for the iterative solvers in ViennaCL are
 indeed poor, not providing any feedback to the outside about the
 current
 residual and/or custom stopping criteria, convergence reasons, etc.
 Improving this is desirable, among many other things to do as well.
 Again a matter of priorities... ;-)

 Best regards,
 Karli


 
 --
 Android apps run on BlackBerry 10
 Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
 Now with support for Jelly Bean, Bluetooth, Mapview and more.
 Get your Android app in front of a whole new audience.  Start now.
 http://pubads.g.doubleclick.net/gampad/clk?id=124407151;
 iu=/4140/ostg.clktrk
 ___
 ViennaCL-devel mailing list
 ViennaCL-devel@lists.sourceforge.net javascript:;
 https://lists.sourceforge.net/lists/listinfo/viennacl-devel



 --
 -Evan Bollig
 bol...@gmail.com mailto:bol...@gmail.com
 bol...@scs.fsu.edu mailto:bol...@scs.fsu.edu




 --
 -Evan Bollig
 bol...@gmail.com
 bol...@scs.fsu.edu

--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471iu=/4140/ostg.clktrk___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-16 Thread Evan Bollig
No real preference. I do want to play with some of the new features in CUDA
6 this summer. Aside from that, the SpMM is of interest to the other groups
I work with. I think Petsc bindings would be a good project. I met with a
CFD group on Friday to discuss optimization and scaling improvements in
their petsc code. Seems to be a big item of interest for many.

-E


On Saturday, February 15, 2014, Karl Rupp r...@iue.tuwien.ac.at wrote:

 Hi Evan,

  Fyi, I'm willing to contribute to the GSoC effort as well. I can sponsor

 access to the variety of hardware we have at the Minnesota
 Supercomputing Institute. Including single and multi-GPU nodes and
 workstations (m2070s, k20s, k2s, and quadro variants), single and multi
 Xeon phi 5110p nodes, and nehalem and sandy bridge nodes.

 Let me know if the need arises. I'm also open to mentor if needed.


 awesome, Evan, that would be absolutely great. Do you have any particular
 project you'd like to see addressed? With multiple nodes available it would
 also be interesting to work on the PETSc-ViennaCL bindings. (This would
 certainly require a fairly experienced student)

 Best regards,
 Karli





 On Saturday, February 15, 2014, Karl Rupp r...@iue.tuwien.ac.at
 mailto:r...@iue.tuwien.ac.at wrote:

 Hi Philippe,

I completely agree, concerning matrix-free implementations of
 the linear
   solver.
  
   Their absence is the very reason why I had to reimplement solvers
 for
   UMinTL.

 I assume you are aware that you can overload viennacl::linalg::prod()
 for whatever custom 'matrix' type you pass to solve()?


   Furthermore, some other fancy stopping criterions may be
   provided. For example, some algorithms in unconstrained
 optimization use
   CG on an indefinite matrix, and abort the solver once p^TAp  0.
 There
   are also some probabilistic stopping criterions for CG when the
   matrix-free implementation is an estimator of the true
 matrix-vector
   product. In the end, the CG I ended up with for UMinTL is pretty
 big and
   flexible, and I think it would be a good thing to have the same
 thing
   within ViennaCL.

 The monitoring capabilities for the iterative solvers in ViennaCL are
 indeed poor, not providing any feedback to the outside about the
 current
 residual and/or custom stopping criteria, convergence reasons, etc.
 Improving this is desirable, among many other things to do as well.
 Again a matter of priorities... ;-)

 Best regards,
 Karli


 
 --
 Android apps run on BlackBerry 10
 Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
 Now with support for Jelly Bean, Bluetooth, Mapview and more.
 Get your Android app in front of a whole new audience.  Start now.
 http://pubads.g.doubleclick.net/gampad/clk?id=124407151;
 iu=/4140/ostg.clktrk
 ___
 ViennaCL-devel mailing list
 ViennaCL-devel@lists.sourceforge.net javascript:;
 https://lists.sourceforge.net/lists/listinfo/viennacl-devel



 --
 -Evan Bollig
 bol...@gmail.com mailto:bol...@gmail.com
 bol...@scs.fsu.edu mailto:bol...@scs.fsu.edu




-- 
-Evan Bollig
bol...@gmail.com
bol...@scs.fsu.edu
--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-15 Thread Karl Rupp
Hi,

  As long as you're a student, you're eligible to apply for GSoC. ;-)
 However, I don't give any guarantees, your application will be treated
 equally. You certainly have an advantage with respect to how things
 work, but no other student should be excluded upfront.

 It would definitely be great to be able to finish what I've started!

A preliminary list of ideas is available here:
http://www.iue.tuwien.ac.at/cse/index.php/gsoc/2014.html
I think about adding an OpenMP tuning project, since more and more users 
seem to get in touch with it.


 I was thinking about another nice-to-have feature. I'd quite like to
 make it possible (if it is in fact possible..) to play with prototyping
 implementations of other algorithms for ViennaCL in PyViennaCl using
 PyOpenCL and PyCUDA; for instance (just picking a recently discussed
 example) to implement using PyOpenCL a cl_program for sparse matrix
 multiplication, and be able to use the resultant buffer like any other
 PyViennaCL matrix object. I don't know if it would be worthwhile to hook
 into the generator or scheduler at this point.

One thing that will be certainly of interest for a bunch of people is 
the ability to provide custom matrix-vector products for the iterative 
solvers (matrix-free implementations). Andreas Kloeckner is also 
looking forward to provide any help needed. Hooking this into the 
scheduler is possible to some degree, at least for the common 
applications of an operator to a vector or matrix.


 Just personally, I'd quite like this functionality, because I do find
 rapid development easier in Python than C++, and I would like to play
 with implementing matrix algorithms at some point in the future.

Python *is* more suitable for rapid prototyping than C++. You will 
quickly find that for rapid prototyping it is important to have broad 
support for all basic operations (including elementwise operations, 
etc.), so this should have highest priority. We should be careful with 
implementing additional algorithms in PyViennaCL for anything other than 
tutorial purposes, because then we would quickly end up maintaining 
multiple versions of the same functionality.


 Yes; I'll need to investigate this. At the moment, I quite enjoy the
 object-oriented nature of ViennaCL, and there are parts of PyViennaCL
 which are inelegantly not-OOP. So I'd probably want to think about which
 way is going to be most elegant overall.

 Presumably, the C++ API isn't going to disappear?

The object-oriented nature will not disappear. Even if the core is going 
to be a shared (C-)library for ViennaCL 2.0.0, it will still have the 
same spirit of the current C++ API. Actually, I expect that ViennaCL 
2.0.0 will still have a (more lightweight) C++ layer on top of the 
shared library, so it's API won't change much.

Best regards,
Karli


--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-15 Thread Philippe Tillet
Hi,

I completely agree, concerning matrix-free implementations of the linear
solver.

Their absence is the very reason why I had to reimplement solvers for
UMinTL. Furthermore, some other fancy stopping criterions may be provided.
For example, some algorithms in unconstrained optimization use CG on an
indefinite matrix, and abort the solver once p^TAp  0. There are also some
probabilistic stopping criterions for CG when the matrix-free
implementation is an estimator of the true matrix-vector product. In the
end, the CG I ended up with for UMinTL is pretty big and flexible, and I
think it would be a good thing to have the same thing within ViennaCL.

Best regards,
Philippe


2014-02-15 9:32 GMT+01:00 Karl Rupp r...@iue.tuwien.ac.at:

 Hi,

   As long as you're a student, you're eligible to apply for GSoC. ;-)
  However, I don't give any guarantees, your application will be treated
  equally. You certainly have an advantage with respect to how things
  work, but no other student should be excluded upfront.
 
  It would definitely be great to be able to finish what I've started!

 A preliminary list of ideas is available here:
 http://www.iue.tuwien.ac.at/cse/index.php/gsoc/2014.html
 I think about adding an OpenMP tuning project, since more and more users
 seem to get in touch with it.


  I was thinking about another nice-to-have feature. I'd quite like to
  make it possible (if it is in fact possible..) to play with prototyping
  implementations of other algorithms for ViennaCL in PyViennaCl using
  PyOpenCL and PyCUDA; for instance (just picking a recently discussed
  example) to implement using PyOpenCL a cl_program for sparse matrix
  multiplication, and be able to use the resultant buffer like any other
  PyViennaCL matrix object. I don't know if it would be worthwhile to hook
  into the generator or scheduler at this point.

 One thing that will be certainly of interest for a bunch of people is
 the ability to provide custom matrix-vector products for the iterative
 solvers (matrix-free implementations). Andreas Kloeckner is also
 looking forward to provide any help needed. Hooking this into the
 scheduler is possible to some degree, at least for the common
 applications of an operator to a vector or matrix.


  Just personally, I'd quite like this functionality, because I do find
  rapid development easier in Python than C++, and I would like to play
  with implementing matrix algorithms at some point in the future.

 Python *is* more suitable for rapid prototyping than C++. You will
 quickly find that for rapid prototyping it is important to have broad
 support for all basic operations (including elementwise operations,
 etc.), so this should have highest priority. We should be careful with
 implementing additional algorithms in PyViennaCL for anything other than
 tutorial purposes, because then we would quickly end up maintaining
 multiple versions of the same functionality.


  Yes; I'll need to investigate this. At the moment, I quite enjoy the
  object-oriented nature of ViennaCL, and there are parts of PyViennaCL
  which are inelegantly not-OOP. So I'd probably want to think about which
  way is going to be most elegant overall.
 
  Presumably, the C++ API isn't going to disappear?

 The object-oriented nature will not disappear. Even if the core is going
 to be a shared (C-)library for ViennaCL 2.0.0, it will still have the
 same spirit of the current C++ API. Actually, I expect that ViennaCL
 2.0.0 will still have a (more lightweight) C++ layer on top of the
 shared library, so it's API won't change much.

 Best regards,
 Karli



 --
 Android apps run on BlackBerry 10
 Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
 Now with support for Jelly Bean, Bluetooth, Mapview and more.
 Get your Android app in front of a whole new audience.  Start now.

 http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
 ___
 ViennaCL-devel mailing list
 ViennaCL-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/viennacl-devel

--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-15 Thread Karl Rupp
Hi Philippe,

  I completely agree, concerning matrix-free implementations of the linear
 solver.

 Their absence is the very reason why I had to reimplement solvers for
 UMinTL.

I assume you are aware that you can overload viennacl::linalg::prod() 
for whatever custom 'matrix' type you pass to solve()?


 Furthermore, some other fancy stopping criterions may be
 provided. For example, some algorithms in unconstrained optimization use
 CG on an indefinite matrix, and abort the solver once p^TAp  0. There
 are also some probabilistic stopping criterions for CG when the
 matrix-free implementation is an estimator of the true matrix-vector
 product. In the end, the CG I ended up with for UMinTL is pretty big and
 flexible, and I think it would be a good thing to have the same thing
 within ViennaCL.

The monitoring capabilities for the iterative solvers in ViennaCL are 
indeed poor, not providing any feedback to the outside about the current 
residual and/or custom stopping criteria, convergence reasons, etc. 
Improving this is desirable, among many other things to do as well. 
Again a matter of priorities... ;-)

Best regards,
Karli


--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-15 Thread Karl Rupp
Hi Evan,

  Fyi, I'm willing to contribute to the GSoC effort as well. I can sponsor
 access to the variety of hardware we have at the Minnesota
 Supercomputing Institute. Including single and multi-GPU nodes and
 workstations (m2070s, k20s, k2s, and quadro variants), single and multi
 Xeon phi 5110p nodes, and nehalem and sandy bridge nodes.

 Let me know if the need arises. I'm also open to mentor if needed.

awesome, Evan, that would be absolutely great. Do you have any 
particular project you'd like to see addressed? With multiple nodes 
available it would also be interesting to work on the PETSc-ViennaCL 
bindings. (This would certainly require a fairly experienced student)

Best regards,
Karli





 On Saturday, February 15, 2014, Karl Rupp r...@iue.tuwien.ac.at
 mailto:r...@iue.tuwien.ac.at wrote:

 Hi Philippe,

I completely agree, concerning matrix-free implementations of
 the linear
   solver.
  
   Their absence is the very reason why I had to reimplement solvers for
   UMinTL.

 I assume you are aware that you can overload viennacl::linalg::prod()
 for whatever custom 'matrix' type you pass to solve()?


   Furthermore, some other fancy stopping criterions may be
   provided. For example, some algorithms in unconstrained
 optimization use
   CG on an indefinite matrix, and abort the solver once p^TAp  0.
 There
   are also some probabilistic stopping criterions for CG when the
   matrix-free implementation is an estimator of the true matrix-vector
   product. In the end, the CG I ended up with for UMinTL is pretty
 big and
   flexible, and I think it would be a good thing to have the same thing
   within ViennaCL.

 The monitoring capabilities for the iterative solvers in ViennaCL are
 indeed poor, not providing any feedback to the outside about the current
 residual and/or custom stopping criteria, convergence reasons, etc.
 Improving this is desirable, among many other things to do as well.
 Again a matter of priorities... ;-)

 Best regards,
 Karli


 
 --
 Android apps run on BlackBerry 10
 Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
 Now with support for Jelly Bean, Bluetooth, Mapview and more.
 Get your Android app in front of a whole new audience.  Start now.
 
 http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
 ___
 ViennaCL-devel mailing list
 ViennaCL-devel@lists.sourceforge.net javascript:;
 https://lists.sourceforge.net/lists/listinfo/viennacl-devel



 --
 -Evan Bollig
 bol...@gmail.com mailto:bol...@gmail.com
 bol...@scs.fsu.edu mailto:bol...@scs.fsu.edu


--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-14 Thread Toby St Clere Smithe
Hey, Philippe,

Philippe Tillet phil.til...@gmail.com
writes:
 I was thinking about another nice-to-have feature. I'd quite like to
 make it possible (if it is in fact possible..) to play with prototyping
 implementations of other algorithms for ViennaCL in PyViennaCl using
 PyOpenCL and PyCUDA; for instance (just picking a recently discussed
 example) to implement using PyOpenCL a cl_program for sparse matrix
 multiplication, and be able to use the resultant buffer like any other
 PyViennaCL matrix object. I don't know if it would be worthwhile to hook
 into the generator or scheduler at this point.

 Just personally, I'd quite like this functionality, because I do find
 rapid development easier in Python than C++, and I would like to play
 with implementing matrix algorithms at some point in the future.


 It would be a nice feature which would help development and contributions
 from external developers. However, I would greatly advise to implement it
 for C++ in first place. It is very easy to do at this level (basically a
 switch before the program is compiled checking for user-provided source).
 I'd even wait for the external-blas linking feature for that, since some
 nice overloads could help. The interface for blas-linking is not precisely
 defined yet. Except of:

 - viennacl::link(GEMM_OR_WHATEVER, viennacl::cl_amd_blas)

 One would have

 - viennacl::link(GEMM_OR_WHATEVER, awesome_source_code)

Yes, this is definitely along the lines of my thinking, and I agree that
I should wait a bit (in any case, I'll have to, since I won't really be
free from my work at the moment till the summer :S); it's mainly a
feature that I'd like to implement in a follow-up GSoC project this
year. I also agree that it should be implemented in C++ -- and I'm
definitely of the opinion that if anything could usefully be shared by
other parts of ViennaCL, it should go in C(++) in the core.


Best wishes,

Toby


--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-04 Thread Karl Rupp
Hi Toby,

  The first project I have in mind is the benchmarking GUI we brainstormed
 about in IRC. It's probably a good idea to push out a first working
 version in the next weeks and then let the student work on refinements
 such as a visualization of the results, etc.

 Were you thinking of doing this in C++? Because I think it could be a
 fun example of using PyViennaCL and Python's various data-plotting
 tools.. (In any case, I think it would be good to ship some example code
 as well as just tutorial snippets with PyViennaCL). Of course, the C++
 interface is probably more ready right now, but it would definitely
 provide a good incentive to get a release out ASAP!

my rough idea is to do this in C++ using Qt. This should be a standalone 
GUI-only thingy, not exposing any 'coding' or compilation to the user. 
Pretty much like other benchmark GUIs out there, but targeting general 
purpose codes on accelerators rather than e.g. computer games :-)

Best regards,
Karli


--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Toby St Clere Smithe
Hi Karl,

Karl Rupp r...@iue.tuwien.ac.at writes:
 the Google Summer of Code [1] is approaching. It attracted some great 
 contributors in the past, most notably Philippe and Toby, and I hope 
 there's more to come. So, guys, please provide your project ideas.

I have a couple of inter-related things I'd like to work on, to make
PyViennaCL a really compelling piece of software -- am I allowed to take
part as a student again? I think I am eligible in Google's eyes, and the
stipend would really help me to dedicate myself to coding again!

 Second, I think PyViennaCL will benefit from another push. Toby, how's 
 your availability for a release in February? I have more time now for 
 assisting you with the final polishing.

I'm definitely aiming for a release in the next couple of weeks. This
weekend is my birthday, so I'm probably looking at some time around the
next weekend (14th-17th ish).

My list of features to complete in PyViennaCL (as separate from ViennaCL
itself) is centered around interoperability and further integration with
the ecosystem. For instance, I want to enable interaction with PyOpenCL
and PyCUDA (as discussed before), which would entail providing access to
the underlying memory buffers, contexts, programs, etc. I also need to
add simple (for the user!) support for SciPy sparse matrix types. Then,
with these two features I'd much more easily be able to work on better
integration and competition with systems like Theano.

Also, having PyCUDA support will require another bit of work:
abstracting PyViennaCL as it currently is away from the default OpenCL
compute backend. I need to add selection of the backend platform and
parameters, and I want to make it easy to use heterogeneous and
distributed systems, but that's probably further off (ie, ViennaCL
1.6+).

In the same making-high-performance-easy vein, I want to enable using
PyViennaCL with PyPy (a performance-oriented implementation of
Python). This throws up another hurdle, because boost::python support for
PyPy is not complete, and where it works, isn't very well
maintained. This needs some investigation, but I get the impression that
in a couple of years, although boost::python is elegant, because Python
developers don't use C++, it might start to bit-rot. One solution might
be to start using libviennacl, but that seems a shame, because I like
using C++, and because I also had a vague idea of adding in support for
Philippe's unconstrained nonlinear optimisation library.

So there's plenty of stuff to do in PyViennaCL itself.. but it mainly
follows directly from two pieces of structural work: firstly,
abstracting away a bit from the back-end (ViennaCL already does this
neatly, so that's not hard); secondly, thinking about boost::python,
libviennacl and pypy. Neither is particularly demanding, but they
probably need doing.

 Something rather generic is the implementation of algorithms such as 
 additional iterative solvers, etc. Now as the standard matrix and vector 
 operations are pretty mature and support multiple backends, this should 
 be a pretty fun piece of work :-)

That does sound fun (if a little generic!) -- my intention has always
been, once PyViennaCL is mostly complete, to do more work on the
ViennaCL 'core', because that's where the mathematically interesting
stuff really happens, and where any work can benefit most people.

 @Philippe, Toby: How about mentoring this year?

That's a tough call. I'd rather apply as a student again, because that
would give me the financial freedom to do some cool work.. I would like
to mentor one year soon, but I feel like at the moment I have unfinished
business!


Cheers,

Toby



--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Toby St Clere Smithe
Toby St Clere Smithe m...@tsmithe.net writes:
 I'm definitely aiming for a release in the next couple of weeks. This
 weekend is my birthday, so I'm probably looking at some time around the
 next weekend (14th-17th ish).

 My list of features to complete in PyViennaCL (as separate from ViennaCL
 itself) is centered around interoperability and further integration with
 the ecosystem.

Just to be clear -- these aren't features for the first release (which
is almost ready), but stuff to work on in the future!


Toby


--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Philippe Tillet
Hi,

I'll be once more available as a mentor :)
I'll be myself pretty busy with some BLAS2/BLAS3 tuning for Hawaii. I'm
also in favor of ideas of projects which don't require a strong knowledge
of the current codebase, such as the GUI autotuning/benchmarking tool. I
think that ViennaCL could also hugely benefit from parameterized FFT
kernels...
Of course, PyViennaCL is another option.

Best regards,
Philippe



2014-02-03 Karl Rupp r...@iue.tuwien.ac.at:

 Hi guys,

 the Google Summer of Code [1] is approaching. It attracted some great
 contributors in the past, most notably Philippe and Toby, and I hope
 there's more to come. So, guys, please provide your project ideas.

 My experience is that good projects are those which don't require the
 student to understand large parts of the existing code and are easy to
 formulate (but not necessarily easy to accomplish :-P). Although I don't
 see work items on our roadmap nicely fulfilling this optimum, we still
 have at least two neat things to work on:

 The first project I have in mind is the benchmarking GUI we brainstormed
 about in IRC. It's probably a good idea to push out a first working
 version in the next weeks and then let the student work on refinements
 such as a visualization of the results, etc.

 Second, I think PyViennaCL will benefit from another push. Toby, how's
 your availability for a release in February? I have more time now for
 assisting you with the final polishing.

 Something rather generic is the implementation of algorithms such as
 additional iterative solvers, etc. Now as the standard matrix and vector
 operations are pretty mature and support multiple backends, this should
 be a pretty fun piece of work :-)

 @Philippe, Toby: How about mentoring this year?

 Best regards,
 Karli

 [1] http://www.google-melange.com/gsoc/homepage/google/gsoc2014


 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
 ___
 ViennaCL-devel mailing list
 ViennaCL-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/viennacl-devel

--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Karl Rupp
Hi Toby,

  the Google Summer of Code [1] is approaching. It attracted some great
 contributors in the past, most notably Philippe and Toby, and I hope
 there's more to come. So, guys, please provide your project ideas.

 I have a couple of inter-related things I'd like to work on, to make
 PyViennaCL a really compelling piece of software -- am I allowed to take
 part as a student again? I think I am eligible in Google's eyes, and the
 stipend would really help me to dedicate myself to coding again!

As long as you're a student, you're eligible to apply for GSoC. ;-) 
However, I don't give any guarantees, your application will be treated 
equally. You certainly have an advantage with respect to how things 
work, but no other student should be excluded upfront.


 Second, I think PyViennaCL will benefit from another push. Toby, how's
 your availability for a release in February? I have more time now for
 assisting you with the final polishing.

 I'm definitely aiming for a release in the next couple of weeks. This
 weekend is my birthday, so I'm probably looking at some time around the
 next weekend (14th-17th ish).

 My list of features to complete in PyViennaCL (as separate from ViennaCL
 itself) is centered around interoperability and further integration with
 the ecosystem. For instance, I want to enable interaction with PyOpenCL
 and PyCUDA (as discussed before), which would entail providing access to
 the underlying memory buffers, contexts, programs, etc. I also need to
 add simple (for the user!) support for SciPy sparse matrix types. Then,
 with these two features I'd much more easily be able to work on better
 integration and competition with systems like Theano.

Yep, that's definitely a nice-to-have!


 Also, having PyCUDA support will require another bit of work:
 abstracting PyViennaCL as it currently is away from the default OpenCL
 compute backend. I need to add selection of the backend platform and
 parameters, and I want to make it easy to use heterogeneous and
 distributed systems, but that's probably further off (ie, ViennaCL
 1.6+).

Right, this is reasonable for a spring/summer project.


 In the same making-high-performance-easy vein, I want to enable using
 PyViennaCL with PyPy (a performance-oriented implementation of
 Python). This throws up another hurdle, because boost::python support for
 PyPy is not complete, and where it works, isn't very well
 maintained. This needs some investigation, but I get the impression that
 in a couple of years, although boost::python is elegant, because Python
 developers don't use C++, it might start to bit-rot. One solution might
 be to start using libviennacl, but that seems a shame, because I like
 using C++, and because I also had a vague idea of adding in support for
 Philippe's unconstrained nonlinear optimisation library.

I'm still convinced that libviennacl is the better choice once it is 
reasonably feature-complete. It will avoid quite a bunch of hassle when 
dealing with a C++-ABI as well as Boost.


 So there's plenty of stuff to do in PyViennaCL itself.. but it mainly
 follows directly from two pieces of structural work: firstly,
 abstracting away a bit from the back-end (ViennaCL already does this
 neatly, so that's not hard); secondly, thinking about boost::python,
 libviennacl and pypy. Neither is particularly demanding, but they
 probably need doing.

 Something rather generic is the implementation of algorithms such as
 additional iterative solvers, etc. Now as the standard matrix and vector
 operations are pretty mature and support multiple backends, this should
 be a pretty fun piece of work :-)

 That does sound fun (if a little generic!) -- my intention has always
 been, once PyViennaCL is mostly complete, to do more work on the
 ViennaCL 'core', because that's where the mathematically interesting
 stuff really happens, and where any work can benefit most people.

 @Philippe, Toby: How about mentoring this year?

 That's a tough call. I'd rather apply as a student again, because that
 would give me the financial freedom to do some cool work.. I would like
 to mentor one year soon, but I feel like at the moment I have unfinished
 business!

Fair enough. Python is just a too vibrant ecosystem, so we should 
dedicate an appropriate amount of attention.

Best regards,
Karli


--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Karl Rupp
Hey,

  I'll be once more available as a mentor :)

Yeah, great! :-)

 I'll be myself pretty busy with some BLAS2/BLAS3 tuning for Hawaii.

I don't think this is going to be a problem.

 I'm
 also in favor of ideas of projects which don't require a strong
 knowledge of the current codebase, such as the GUI
 autotuning/benchmarking tool.


 I think that ViennaCL could also hugely
 benefit from parameterized FFT kernels...

Vova was working on FFTs back then. Still today we have to face the 
question of whether it's worth the effort. Occasionally I notice that 
users work with FFT, so there certainly is demand for it. On the other 
hand, given that vendor libraries are available, the time is presumably 
better spent on other things...

Best regards,
Karli


--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel


Re: [ViennaCL-devel] Ideas for Google Summer of Code?

2014-02-03 Thread Toby St Clere Smithe
Just another brief thought before I go to bed -- Karl, I'll respond to
your response in the morning ! :)

Karl Rupp r...@iue.tuwien.ac.at writes:
 The first project I have in mind is the benchmarking GUI we brainstormed 
 about in IRC. It's probably a good idea to push out a first working 
 version in the next weeks and then let the student work on refinements 
 such as a visualization of the results, etc.

Were you thinking of doing this in C++? Because I think it could be a
fun example of using PyViennaCL and Python's various data-plotting
tools.. (In any case, I think it would be good to ship some example code
as well as just tutorial snippets with PyViennaCL). Of course, the C++
interface is probably more ready right now, but it would definitely
provide a good incentive to get a release out ASAP!


Toby



--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231iu=/4140/ostg.clktrk
___
ViennaCL-devel mailing list
ViennaCL-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/viennacl-devel