Skip to content

Commit c47a88d

Browse files
committed
feat: add notebook from colab
1 parent 7fb8680 commit c47a88d

File tree

2 files changed

+242
-0
lines changed

2 files changed

+242
-0
lines changed

benchmarks/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Benchmarking
2+
3+
This directory contains a set of benchmarks that we use to evaluate the performance of the `jaxadi` in comparison to `cusadi`.
4+
5+
Due to the difficulty of installation and `cuda` dependencies, we were able to reproduce the tests in the `colab` environment only.

benchmarks/jaxadi_vs_cusadi.ipynb

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
{
2+
"nbformat": 4,
3+
"nbformat_minor": 0,
4+
"metadata": {
5+
"colab": {
6+
"provenance": [],
7+
"gpuType": "T4"
8+
},
9+
"kernelspec": {
10+
"name": "python3",
11+
"display_name": "Python 3"
12+
},
13+
"language_info": {
14+
"name": "python"
15+
},
16+
"accelerator": "GPU"
17+
},
18+
"cells": [
19+
{
20+
"cell_type": "code",
21+
"source": [
22+
"%%capture\n",
23+
"\n",
24+
"!git clone https://github.com/se-hwan/cusadi\n",
25+
"!git clone -b feature/benchmarking https://github.com/based-robotics/jaxadi\n",
26+
"# copy the content back to the current directory\n",
27+
"!cp -r cusadi/** .\n",
28+
"!pip install -e .\n",
29+
"!cd jaxadi && pip install .\n",
30+
"!cp jaxadi/benchmarks/run_benchmark.py ."
31+
],
32+
"metadata": {
33+
"id": "6wCJ13jopz9v"
34+
},
35+
"execution_count": 1,
36+
"outputs": []
37+
},
38+
{
39+
"cell_type": "code",
40+
"source": [
41+
"from run_benchmark import main\n",
42+
"main()"
43+
],
44+
"metadata": {
45+
"colab": {
46+
"base_uri": "https://localhost:8080/"
47+
},
48+
"id": "UQRLUvYeHJxH",
49+
"outputId": "ab357d37-412c-4f86-ea26-c73e70901604"
50+
},
51+
"execution_count": 2,
52+
"outputs": [
53+
{
54+
"output_type": "stream",
55+
"name": "stdout",
56+
"text": [
57+
"Generating CUDA code for CasADi function: fn_1e1\n",
58+
"CUDA codegen complete for CasADi function: fn_1e1\n",
59+
"Generating CUDA code for CasADi function: fn_1e2\n",
60+
"CUDA codegen complete for CasADi function: fn_1e2\n",
61+
"fn_1e1\n",
62+
"fn_1e2\n",
63+
"Running CUDA benchmark for 1 environments with function fn_1e1...\n",
64+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
65+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d4592d0>\n",
66+
"Running CUDA benchmark for 2 environments with function fn_1e1...\n",
67+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
68+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459a80>\n",
69+
"Running CUDA benchmark for 4 environments with function fn_1e1...\n",
70+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
71+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459870>\n",
72+
"Running CUDA benchmark for 8 environments with function fn_1e1...\n",
73+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
74+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459ab0>\n",
75+
"Running CUDA benchmark for 16 environments with function fn_1e1...\n",
76+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
77+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459e70>\n",
78+
"Running CUDA benchmark for 32 environments with function fn_1e1...\n",
79+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
80+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459840>\n",
81+
"Running CUDA benchmark for 64 environments with function fn_1e1...\n",
82+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
83+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459d80>\n",
84+
"Running CUDA benchmark for 128 environments with function fn_1e1...\n",
85+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
86+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459960>\n",
87+
"Running CUDA benchmark for 256 environments with function fn_1e1...\n",
88+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
89+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459930>\n",
90+
"Running CUDA benchmark for 512 environments with function fn_1e1...\n",
91+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
92+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d4597b0>\n",
93+
"Running CUDA benchmark for 1024 environments with function fn_1e1...\n",
94+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
95+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459990>\n",
96+
"Running CUDA benchmark for 2048 environments with function fn_1e1...\n",
97+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
98+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459db0>\n",
99+
"Running CUDA benchmark for 4096 environments with function fn_1e1...\n",
100+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
101+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459f30>\n",
102+
"Running CUDA benchmark for 8192 environments with function fn_1e1...\n",
103+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
104+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d45a0b0>\n",
105+
"Running CUDA benchmark for 16384 environments with function fn_1e1...\n",
106+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
107+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459810>\n",
108+
"Running CUDA benchmark for 32768 environments with function fn_1e1...\n",
109+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
110+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d4599f0>\n",
111+
"Running CUDA benchmark for 65536 environments with function fn_1e1...\n",
112+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
113+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d45a0e0>\n",
114+
"Running CUDA benchmark for 131072 environments with function fn_1e1...\n",
115+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
116+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d459f90>\n",
117+
"Running CUDA benchmark for 262144 environments with function fn_1e1...\n",
118+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
119+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d45a440>\n",
120+
"Running CUDA benchmark for 524288 environments with function fn_1e1...\n",
121+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
122+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b3d45a290>\n",
123+
"Running CUDA benchmark for 1048576 environments with function fn_1e1...\n",
124+
"Loaded CasADi function: fn_1e1:(i0[4],i1[2],i2[2],i3)->(o0[2],o1[3x3],o2[3]) SXFunction\n",
125+
"Loaded library: <CDLL '/content/build/libfn_1e1.so', handle 5bb692f4d500 at 0x7e0b406f7d00>\n",
126+
"Running CUDA benchmark for 1 environments with function fn_1e2...\n",
127+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
128+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a3e0>\n",
129+
"Running CUDA benchmark for 2 environments with function fn_1e2...\n",
130+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
131+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45ae90>\n",
132+
"Running CUDA benchmark for 4 environments with function fn_1e2...\n",
133+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
134+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a800>\n",
135+
"Running CUDA benchmark for 8 environments with function fn_1e2...\n",
136+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
137+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d459ae0>\n",
138+
"Running CUDA benchmark for 16 environments with function fn_1e2...\n",
139+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
140+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a980>\n",
141+
"Running CUDA benchmark for 32 environments with function fn_1e2...\n",
142+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
143+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a5f0>\n",
144+
"Running CUDA benchmark for 64 environments with function fn_1e2...\n",
145+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
146+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45ada0>\n",
147+
"Running CUDA benchmark for 128 environments with function fn_1e2...\n",
148+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
149+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a680>\n",
150+
"Running CUDA benchmark for 256 environments with function fn_1e2...\n",
151+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
152+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45aef0>\n",
153+
"Running CUDA benchmark for 512 environments with function fn_1e2...\n",
154+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
155+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a920>\n",
156+
"Running CUDA benchmark for 1024 environments with function fn_1e2...\n",
157+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
158+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b160>\n",
159+
"Running CUDA benchmark for 2048 environments with function fn_1e2...\n",
160+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
161+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b190>\n",
162+
"Running CUDA benchmark for 4096 environments with function fn_1e2...\n",
163+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
164+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a890>\n",
165+
"Running CUDA benchmark for 8192 environments with function fn_1e2...\n",
166+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
167+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b3d0>\n",
168+
"Running CUDA benchmark for 16384 environments with function fn_1e2...\n",
169+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
170+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b010>\n",
171+
"Running CUDA benchmark for 32768 environments with function fn_1e2...\n",
172+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
173+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b400>\n",
174+
"Running CUDA benchmark for 65536 environments with function fn_1e2...\n",
175+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
176+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45a8c0>\n",
177+
"Running CUDA benchmark for 131072 environments with function fn_1e2...\n",
178+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
179+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b640>\n",
180+
"Running CUDA benchmark for 262144 environments with function fn_1e2...\n",
181+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
182+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b340>\n",
183+
"Running CUDA benchmark for 524288 environments with function fn_1e2...\n",
184+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
185+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b700>\n",
186+
"Running CUDA benchmark for 1048576 environments with function fn_1e2...\n",
187+
"Loaded CasADi function: fn_1e2:(i0[9],i1[3],i2[6],i3[2])->(o0[3],o1[5x5,23nz],o2[5]) SXFunction\n",
188+
"Loaded library: <CDLL '/content/build/libfn_1e2.so', handle 5bb69380ab70 at 0x7e0b3d45b520>\n",
189+
"Running Jaxadi benchmark for 1 environments with function fn_1e1...\n",
190+
"Running Jaxadi benchmark for 2 environments with function fn_1e1...\n",
191+
"Running Jaxadi benchmark for 4 environments with function fn_1e1...\n",
192+
"Running Jaxadi benchmark for 8 environments with function fn_1e1...\n",
193+
"Running Jaxadi benchmark for 16 environments with function fn_1e1...\n",
194+
"Running Jaxadi benchmark for 32 environments with function fn_1e1...\n",
195+
"Running Jaxadi benchmark for 64 environments with function fn_1e1...\n",
196+
"Running Jaxadi benchmark for 128 environments with function fn_1e1...\n",
197+
"Running Jaxadi benchmark for 256 environments with function fn_1e1...\n",
198+
"Running Jaxadi benchmark for 512 environments with function fn_1e1...\n",
199+
"Running Jaxadi benchmark for 1024 environments with function fn_1e1...\n",
200+
"Running Jaxadi benchmark for 2048 environments with function fn_1e1...\n",
201+
"Running Jaxadi benchmark for 4096 environments with function fn_1e1...\n",
202+
"Running Jaxadi benchmark for 8192 environments with function fn_1e1...\n",
203+
"Running Jaxadi benchmark for 16384 environments with function fn_1e1...\n",
204+
"Running Jaxadi benchmark for 32768 environments with function fn_1e1...\n",
205+
"Running Jaxadi benchmark for 65536 environments with function fn_1e1...\n",
206+
"Running Jaxadi benchmark for 131072 environments with function fn_1e1...\n",
207+
"Running Jaxadi benchmark for 262144 environments with function fn_1e1...\n",
208+
"Running Jaxadi benchmark for 524288 environments with function fn_1e1...\n",
209+
"Running Jaxadi benchmark for 1048576 environments with function fn_1e1...\n",
210+
"Running Jaxadi benchmark for 1 environments with function fn_1e2...\n",
211+
"Running Jaxadi benchmark for 2 environments with function fn_1e2...\n",
212+
"Running Jaxadi benchmark for 4 environments with function fn_1e2...\n",
213+
"Running Jaxadi benchmark for 8 environments with function fn_1e2...\n",
214+
"Running Jaxadi benchmark for 16 environments with function fn_1e2...\n",
215+
"Running Jaxadi benchmark for 32 environments with function fn_1e2...\n",
216+
"Running Jaxadi benchmark for 64 environments with function fn_1e2...\n",
217+
"Running Jaxadi benchmark for 128 environments with function fn_1e2...\n",
218+
"Running Jaxadi benchmark for 256 environments with function fn_1e2...\n",
219+
"Running Jaxadi benchmark for 512 environments with function fn_1e2...\n",
220+
"Running Jaxadi benchmark for 1024 environments with function fn_1e2...\n",
221+
"Running Jaxadi benchmark for 2048 environments with function fn_1e2...\n",
222+
"Running Jaxadi benchmark for 4096 environments with function fn_1e2...\n",
223+
"Running Jaxadi benchmark for 8192 environments with function fn_1e2...\n",
224+
"Running Jaxadi benchmark for 16384 environments with function fn_1e2...\n",
225+
"Running Jaxadi benchmark for 32768 environments with function fn_1e2...\n",
226+
"Running Jaxadi benchmark for 65536 environments with function fn_1e2...\n",
227+
"Running Jaxadi benchmark for 131072 environments with function fn_1e2...\n",
228+
"Running Jaxadi benchmark for 262144 environments with function fn_1e2...\n",
229+
"Running Jaxadi benchmark for 524288 environments with function fn_1e2...\n",
230+
"Running Jaxadi benchmark for 1048576 environments with function fn_1e2...\n",
231+
"Benchmark results saved.\n"
232+
]
233+
}
234+
]
235+
}
236+
]
237+
}

0 commit comments

Comments
 (0)