3 ms·
While it doesn't justify by itself, it means that this area will be constantly profiled and optimized tricks will be implemented to handle it better, like auto-
by ddragon 7y ago
While it doesn't justify by itself, it means that this area will be constantly profiled and optimized tricks will be implemented to handle it better, like auto-simd, using multiple dispatch to detect optimal BLAS method for every matrix operation, implementing broadcast/loop fusion. Even matlab which will poorly handle almost anything is pretty competitive in numerical processing.
And saying CL is fast because you can write in assembly is like saying Python is fast because you can write in C. And while you can't write in assembly in Julia, you can go down all the way down to the LLVM (and intercept the compiler right between detecting types and compiling so you can rewrite every intrinsic with your new backend in a more flexible way than multiple dispatch) like they did with XLA.jl for TPUs and CUDANative for GPUs.
- ihnorton 7y ago> And while you can't write in assembly in Julia Julia allows inline LLVM IR, so this is technically possible, if a little awkward: https://julialang.org/blog/2017/03/piday#π-via-inline-assembly-instructions https://julialang.org/blog/2017/03/piday#π-via-inline-assemb...