In order to evaluate the performance of the jaxadi
library vs cusadi
we have tried to reproduce the benchmarks from the cusadi
library first and faced some issues with the proper cuda
installation.
Adding the complexity of setup of benchmarks of cusadi we have copied and modified the benchmarks to be able to run them in the colab
environment side by side (CUDA vs Jax).
Due limitations we cover only the functions with less than 1e3 operations. All of them are located in the data directory.
One may run the benchmarks in the colab environment and get the cusadi results and jaxadi results for comparison.
This analysis compares the performance of two computational tools, Jaxadi and Cusadi, using a range of batch sizes for different operations. The tools are evaluated based on average computation times and their relative speedup across various workloads.
-
Jaxadi's Consistent Advantage: Across all tested scenarios, Jaxadi consistently shows better performance than Cusadi. This is evident from the lower average computation times for Jaxadi, particularly as the workload increases.
-
Scalability Differences: As batch sizes grow, the gap between the two tools becomes more pronounced. Cusadi's computation time increases rapidly with larger batch sizes, especially beyond (2^{12}). In contrast, Jaxadi maintains a more stable performance with a much slower increase in computation time, indicating better batch scalability.
Overall, Jaxadi offers a clear performance advantage over Cusadi, particularly for small functions which can be translated propely.