Re: [ViennaCL-devel] Ideas for Google Summer of Code?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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
[ViennaCL-devel] Ideas for Google Summer of Code?
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