Hi,
This is a slight modification in the plan for GSoC 2017.
Currently, the work in the field of Ruby Scientific Computing is available mostly for MRI.
Hence, my main focus would be to make ArrayFire completely usable for MRI, making it
easy for other Rubyists to switch to ArrayFire for fast computations on a GPU backend . I will
be writing blogs and examples every week. Docs will be updated every week.
ArrayFire for JRuby would be a prototype with same functionalities as ArrayFire - MRI but the blogs
and examples may not be as rich as that of ArrayFire-MRI.
Plan:
Week 1 - Week2 -mid (May 30 - June 10)
Make ArrayFire-MRI ready with tests
Strides and Enumerators
Helper Functions
Week 2-mid - mid to Week 3 (May 30 - June 19)
CTC 2017
(I will be attending Complex Trait Community Conference.
So, I would not be able to work in this period.)
Week 3-mid to Week 4 (June 20 - June 28 )
Implement the following functions using ArrayFire C++ APIs.
Arithmetic operations: +,-, *, /, >>, <<
Exponential and logarithmic functions: exp, log, expm1, log1p, etc.
Hyperbolic functions: sinh, cosh, tanh, etc.
Logical operations: &&, ||, |, &, <, >, <=, >=,==, !
Numeric functions: floor, round, min, max, etc.
Trigonometric functions: sin, cos, tan, etc.
Af_Array#+ has been implemented as:
First - Evaluation Deliverables
Linear Algebra Support for N-dimensional matrices using ArrayFire on MRI
Linear Algebra Support for 2-dimensional matrices using ArrayFire on JRuby
Week 5 (June 30 - July 7)
Start implementing ArrayFire-JRuby
Creation of Af_Array
ArrayFire-BLAS
Week 6 (July 7 - June 14)
ArrayFire- JRuby LAPACK functionalities
Week 7 (July 14 - July 21)
Strides and Enumerators
Helper Functions
Week 8 (July 21 - July 28)
Mathematical Functions
Implement the following functions using ArrayFire Java.
Arithmetic operations: +,-, *, /, >>, <<
Exponential and logarithmic functions: exp, log, expm1, log1p, etc.
Hyperbolic functions: sinh, cosh, tanh, etc.
Logical operations: &&, ||, |, &, <, >, <=, >=,==, !
Numeric functions: floor, round, min, max, etc.
Trigonometric functions: sin, cos, tan, etc.
Af_Array#+ would be implemented as:
Second Evaluation July 24 - 28, 2017 - Deliverables
Linear Algebra Support for N-dimensional matrices using ArrayFire on JRuby
NMatrix integrated with ArrayFire with maximum test coverage for dense stype and double dtype.
Implement Statistics and Reduction APIs for vectors
Week 9 ( July 29 - August 6)
Interface ArrayFire with NMatrix
Week 10 (July 7 - August 14)
Interface ArrayFire with mixed_models
Week 11 (August 14 - August 21 )
Searching and Sorting
Implementing Basic Statistics functions, like corrcoef, cov, mean
Week 12( August 21 - August 30 )
Release docs for the ArrayFire gem.
Write blog posts explaining how to utilize the ArrayFire gem for High Performance Computing. This will involve writing iruby notebooks.
Final - Evaluation Deliverables
ArrayFire gem for Ruby supported on MRI as well as JRuby.
NMatrix integrated with ArrayFire.
Regards,
Prasun