|
| 1 | +--- |
| 2 | +title: "Annually-Funded Developers' Update: Jan./Feb. 2025" |
| 3 | +date: 2025-03-08T14:00:00+12:00 |
| 4 | +author: Kathy Davis |
| 5 | +summary: "Dragan Duric, Eric Dallo, Michiel Borkent, Peter Taoussanis, Oleksandr Yakushev" |
| 6 | +draft: True |
| 7 | + |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +Hello Fellow Clojurists! |
| 12 | +This is the first report from the 5 developers receivng Annual Funding on 2025. |
| 13 | + |
| 14 | +Dragan Duric |
| 15 | +Eric Dallo |
| 16 | +Michiel Borkent |
| 17 | +Peter Taoussanic |
| 18 | +Oleksandr Yakushev |
| 19 | + |
| 20 | + |
| 21 | +## Dragan Duric |
| 22 | +2025 Annual Funing Report 1. Published February 27, 2025. |
| 23 | + |
| 24 | +My goal with this funding in 2025 is to support Apple silicon (M cpus) in Neanderthal |
| 25 | +(and other Uncomplicate libraries where that makes sense and where it's possible). |
| 26 | + |
| 27 | +In January and February, I released the first version of Neanderhal that can run on Mac/Apple M! |
| 28 | + |
| 29 | +In more detail: |
| 30 | + |
| 31 | +Here's what I've proposed when applying for the CT grant. |
| 32 | + |
| 33 | +I propose to * Implement an Apple M engine for Neanderthal.* This involves: |
| 34 | +- buying an Apple M2/3 Mac (the cheapest M3 in Serbia is almost 3000 USD (with VAT). |
| 35 | +- learning enough macOS tools (Xcode was terrible back in the days) to be able to do anything. |
| 36 | +- exploring JavaCPP support for ARM and macOS. |
| 37 | +- exploring relevant libraries (OpenBLAS may even work through JavaCPP). |
| 38 | +- exploring Apple Accelerate. |
| 39 | +- learning enough JavaCPP tooling to be able to see whether it is realistic that I build Accelerate wrapper (and if I can't, at least to know how much I don't know). |
| 40 | +- I forgot even little C/C++ that I did know back in the day. This may also give me some headaches, as I'll have to quickly pick up whatever is needed. |
| 41 | +- writing articles about relevant topics so Clojurians can pick this functionality as it arrives. |
| 42 | + |
| 43 | +Projects directly involved: |
| 44 | +https://github.com/uncomplicate/neanderthal |
| 45 | +https://github.com/uncomplicate/deep-diamond |
| 46 | +https://github.com/uncomplicate/clojure-cpp |
| 47 | + |
| 48 | +First, I set to the task of tidying up the existing versions of Uncomplicate libraries (Neanderthal, Deep Diamond, etc.) to bring them up with the latest versions of native libraries, cuda, etc., and to fix some outstanding issues/bugs that might complicate work on Apple M support. After that, it was time for the main task, the beginnings of Apple M support. |
| 49 | + |
| 50 | +The plan was to buy an Apple M2/M3, but in the meantime the nice Clojurians from Prague donated a used (but fantastically beefed up) MacBook Pro Max M1, so this was covered quickly! |
| 51 | + |
| 52 | +I explored OpenBLAS as the first choice (the other is Apple Accelerate), as it can also work on Linux and Windows, and could be immediately beneficial to all users and easier to start with (I didn't need to switch to Apple yet). |
| 53 | +I implemented the OpenBLAS engine for the part of functionality that was supported by JavaCPP's openblas preset. |
| 54 | +A lot of critical functionality was not present there (although some of it was there in the openblas itself), |
| 55 | +so I jumped at the opportunity to learn some JavaCPP preset building, and improved JavaCPP's OpenBLAS. |
| 56 | +After a bit of experimentation and lot of waiting on the compiler and github tools, this is now contributed upstream. |
| 57 | + |
| 58 | +Next, I returned to the pleasant part of work - programming in Clojure - and completed the first Neanderthal |
| 59 | +engine that runs in Apple M Macs. This covers the core and linalg namespace, because this is what OpenBLAS covers. The rest of Neanderthal functionality is waiting for me to explore Apple Accelerate, and to create engine based on that. |
| 60 | + |
| 61 | +I managed to release Neanderthal 0.53.2, which enables Clojurians to use this on their Macs, just in time for this report. |
| 62 | + |
| 63 | +I hope they'll have immediate benefits, and have fun doing some high performance hacking on their Macs. |
| 64 | + |
| 65 | +Many thanks for CT for sponsoring this work! <br> |
| 66 | + |
| 67 | +--- |
| 68 | + |
| 69 | +## Eric Dallo |
| 70 | +2025 Annual Funing Report 1. Published February 27, 2025. |
| 71 | + |
0 commit comments