octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GSOC 2021 Idea Discussion


From: Kai Torben Ohlhus
Subject: Re: GSOC 2021 Idea Discussion
Date: Sat, 20 Mar 2021 22:14:26 +0900
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0

On 3/20/21 7:48 PM, Atharva Dubey wrote:
Hello Mr. Torben
Even though the library is in the initial stages of development, I would keep developing it and work on it extensively during GSOC. Octave is meant for scientific computing which would include machine learning algorithms, many of which can be accelerated on the GPU. Therefore I believe it is relevant to Octave as it would be good to have a dedicated ML library with GPU acceleration.

Also, I am really interested in HPC, and I had another idea, which is to provide hardware acceleration to the scientific algorithms already present. For example, write a kernel for FFT  in both Cuda as well as SYCL (so that we could cover all the devices) and dynamically dispatch it to the target device. This way octave would have strong hardware acceleration support.  This would however be a big project, as most of the BLAS would have to be rewritten for SYCL. For Nvidia GPUs, we could use cuBLAS/ NvBLAS.

Thanks and Regards,
Atharva Dubey


Dear Atharva Dubey,

Thank you for your explanations. I am sure you will put lots of work in your project during the 18 hours times 10 weeks [1] of GSoC. Seeing all your ambitious plans, the given GSoC time is rather short. To take your application seriously, I ask you to narrow your scope and to do some research in advance.

For Octave it would be of course nice to have functions with GPU acceleration. But what exactly do you want to work on in the given time frame? Buzzwords alone do not define a project.

- An independent "machine learning" library for SYCL? What about [2]?
- Enabling some Octave core algorithms to benefit from GPU acceleration? Which and how?
- Rewriting a BLAS for SYCL?  What about [3]?

All three points for themselves are in my opinion too ambitious for a GSoC project without prior scope definition and proper narrowing. Yours might end up in another proof-of-concept "octave machine learning" code, of which there are already plenty (I counted 1250 on GitHub [4] alone).

Despite another comment on the mailing-list [5] by przemek klosowski about using Codeplays SYCL implementation. With SYCL there is a technical issue, as it requires C++17 [6] and Octave still only requires C++11. It is possible to handle this, but it requires more thought how to do it, without making Octave's code unmaintainable by lots of C++17 feature branches.

If you want to focus on "machine learning" algorithms with GPU acceleration using Octave, take a look at the OpenCL ocl-package [7].

Best,
Kai


[1] https://developers.google.com/open-source/gsoc/faq#how_much_time_does_gsoc_participation_take
[2] https://github.com/codeplaysoftware/SYCL-ML
[3] https://github.com/codeplaysoftware/sycl-blas
[4] https://github.com/search?q=machine+learning+octave&type=Repositories
[5] https://lists.gnu.org/archive/html/octave-maintainers/2021-03/msg00050.html
[6] https://en.wikipedia.org/wiki/SYCL
[7] https://octave.sourceforge.io/ocl/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]