There are people spending their whole careers to make low level operations, such as Matrix multiplication, faster. I prefer reusing their jobs and focus on new problems. Then, calling CBLAS from C or using an @ operator in numpy does not change the fact I need to think in terms of tensors, and to me Python is more friendly than C/C++ there. Also, this approach became profitable for enterprise that provide you with closed-source kernels for supporting their specialized hardware (GPUs, FPGAs but also modern CPUs). The way you think in Python remains the same, but you get backed by the work of thousands of engineers focusing on how to make an FFT faster to sell their hardware over competitors. In the unlikely event you need an algorithm nobody needed before and/or that you can write a faster implementation at least for CPU, please do it in C! I am willing to bind and reuse your code rather than rethinking it, at least as long as it does not become a bottleneck for my application.
pyppo42 t1_j10xylo wrote
Reply to [D] Why are we stuck with Python for something that require so much speed and parallelism (neural networks)? by vprokopev
There are people spending their whole careers to make low level operations, such as Matrix multiplication, faster. I prefer reusing their jobs and focus on new problems. Then, calling CBLAS from C or using an @ operator in numpy does not change the fact I need to think in terms of tensors, and to me Python is more friendly than C/C++ there. Also, this approach became profitable for enterprise that provide you with closed-source kernels for supporting their specialized hardware (GPUs, FPGAs but also modern CPUs). The way you think in Python remains the same, but you get backed by the work of thousands of engineers focusing on how to make an FFT faster to sell their hardware over competitors. In the unlikely event you need an algorithm nobody needed before and/or that you can write a faster implementation at least for CPU, please do it in C! I am willing to bind and reuse your code rather than rethinking it, at least as long as it does not become a bottleneck for my application.