Google Summer Code 2015
This file summurized the work of the student Kai Langen on the update ot the Cyme library for the Power/arm architecture during the Google Summer Code 2015. The BlueBrain project applies the Agile software development methodology, therefore the work is summurized per sprint (3 consecutives weeks).
Sprint 7, May 11th - 28th
- Read documentation and general questions about the library
- Following my advices, Kai prepared the backend and modify the trait classes
- The Power infrastructure back end is ready, API and assert(false) in all functions
- 2^x and 10^x are implemented correctly with the corresponding tests, documentation, merge in master
- log_2 and log_10 are implemented correctly with the corresponding tests, documentation, merge in master
Sprint 8, june 1st - 18th
- Connection front/end, first contact with the remote enviromment
- Compile the empty backend [ok], ready to start
- all wrapper are filled except call to IBM mass library
- all tests work except tests related to log and exp
- exp wrappers work
Sprint 9, june 18th - july 2nd
- log float has been fixed
- log double pbs are identified, work in progress
- Merge the Power7/8 backend in the master, the main objective of the GGSC is accomplished
- Print functions for all vectors classes, merge in the master
- Implement the backbone of the ARM backend, it compiles
Sprint 10, july 2nd - 23rd
- Merge the ARM backend in the master, the first optional objective of the GGSC is accomplished
- Start the trigonometric implementations (sinus)
- Sin x86 SSE/AVX works, with corresponding tests
- Add absolute value in the DAG
Sprint 12, july 24rd - august 14th
- Start cos/tan SSE AVX
- merge sin/cos/tan solver SSE/AVX/NEON/VMX(le&be) 100% test pass, BG/Q support pending
- merge fabs integrated like a node merge
Sprint 13, august 15th - august 24th - end GGSC-2015
- Code gather/scatter operations with corresponding tests
- Work done but the merge is pending, the tests fail for unknow reason.
Conclusions
Excellent work of Kai, Kai has succeeded the two main objectives of the GGSC-215: two new backends (Power 7/8 and ARM). And he also succeeds, optional objectives like: new math operations (abs, 2^x, 10^x, log_b), trigonometric functions, and a few improvements of the framework.