Skip to content

Commit 940c79c

Browse files
committed
add gas params
1 parent 5ee5de2 commit 940c79c

File tree

3 files changed

+408
-9
lines changed

3 files changed

+408
-9
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,359 @@
1+
# 🔥 Gas and Banchmarks
2+
3+
This section will list the gas costs for every operation based on it's inputs.
4+
The way we decided how much gas will each and every operation consume was by checking how much time each operation takes in a QUERY. We decided to set the gas cost of `FHE.div` of `euint32` to be around 1 million gas units and set the price of other operations accordingly
5+
6+
:::tip
7+
The current gas limit for a tranasaction is set to be 50 million
8+
:::
9+
10+
<table>
11+
<thead>
12+
<tr>
13+
<th>FHE.sol function</th>
14+
<th>Input</th>
15+
<th>Time in Query (ms)</th>
16+
<th>Gas Units </th>
17+
</tr>
18+
</thead>
19+
<tbody>
20+
<tr>
21+
<td rowspan="3">add</td>
22+
<td>euint8</td>
23+
<td>35</td>
24+
<td>7,315</td>
25+
</tr>
26+
<tr>
27+
<td>euint16</td>
28+
<td>73</td>
29+
<td>15,275</td>
30+
</tr>
31+
<tr>
32+
<td>euint32</td>
33+
<td>163</td>
34+
<td>34,067</td>
35+
</tr>
36+
<tr>
37+
<td rowspan="3">asEuint</td>
38+
<td>inEuint</td>
39+
<td>44</td>
40+
<td>9,196</td>
41+
</tr>
42+
<tr>
43+
<td>euint</td>
44+
<td>5</td>
45+
<td>1,045</td>
46+
</tr>
47+
<tr>
48+
<td>uint</td>
49+
<td>5</td>
50+
<td>1,045</td>
51+
</tr>
52+
<tr>
53+
<td>sealOutput</td>
54+
<td>*</td>
55+
<td>23</td>
56+
<td>2,507</td>
57+
</tr>
58+
<tr>
59+
<td>decrypt</td>
60+
<td>*</td>
61+
<td>18</td>
62+
<td>3,762</td>
63+
</tr>
64+
<tr>
65+
<td rowspan="3">lte</td>
66+
<td>euint8</td>
67+
<td>18</td>
68+
<td>3,762</td>
69+
</tr>
70+
<tr>
71+
<td>euint16</td>
72+
<td>29</td>
73+
<td>6,061</td>
74+
</tr>
75+
<tr>
76+
<td>euint32</td>
77+
<td>43</td>
78+
<td>8,987</td>
79+
</tr>
80+
<tr>
81+
<td rowspan="3">sbb</td>
82+
<td>euint8</td>
83+
<td>35</td>
84+
<td>7,315</td>
85+
</tr>
86+
<tr>
87+
<td>euint16</td>
88+
<td>73</td>
89+
<td>15,275</td>
90+
</tr>
91+
<tr>
92+
<td>euint32</td>
93+
<td>163</td>
94+
<td>34,067</td>
95+
</tr>
96+
<tr>
97+
<td rowspan="3">mul</td>
98+
<td>euint8</td>
99+
<td>94</td>
100+
<td>19,646</td>
101+
</tr>
102+
<tr>
103+
<td>euint16</td>
104+
<td>311</td>
105+
<td>64,999</td>
106+
</tr>
107+
<tr>
108+
<td>euint32</td>
109+
<td>1127</td>
110+
<td>235,543</td>
111+
</tr>
112+
<tr>
113+
<td rowspan="3">lt</td>
114+
<td>euint8</td>
115+
<td>22</td>
116+
<td>4,598</td>
117+
</tr>
118+
<tr>
119+
<td>euint16</td>
120+
<td>36</td>
121+
<td>7,524</td>
122+
</tr>
123+
<tr>
124+
<td>euint32</td>
125+
<td>60</td>
126+
<td>12,540</td>
127+
</tr>
128+
<tr>
129+
<td rowspan="3">select</td>
130+
<td>euint8</td>
131+
<td>214</td>
132+
<td>44,726</td>
133+
</tr>
134+
<tr>
135+
<td>euint16</td>
136+
<td>316</td>
137+
<td>66,044</td>
138+
</tr>
139+
<tr>
140+
<td>euint32</td>
141+
<td>549</td>
142+
<td>114,741</td>
143+
</tr>
144+
<tr>
145+
<td>require</td>
146+
<td>*</td>
147+
<td>65</td>
148+
<td>13,585</td>
149+
</tr>
150+
<tr>
151+
<td rowspan="3">div</td>
152+
<td>euint8</td>
153+
<td>447</td>
154+
<td>93,423</td>
155+
</tr>
156+
<tr>
157+
<td>euint16</td>
158+
<td>1310</td>
159+
<td>273,790</td>
160+
</tr>
161+
<tr>
162+
<td>euint32</td>
163+
<td>4800</td>
164+
<td>1,003,200</td>
165+
</tr>
166+
<tr>
167+
<td rowspan="3">gt</td>
168+
<td>euint8</td>
169+
<td>21</td>
170+
<td>4,389</td>
171+
</tr>
172+
<tr>
173+
<td>euint16</td>
174+
<td>29</td>
175+
<td>6,061</td>
176+
</tr>
177+
<tr>
178+
<td>euint32</td>
179+
<td>45</td>
180+
<td>9,405</td>
181+
</tr>
182+
<tr>
183+
<td rowspan="3">gte</td>
184+
<td>euint8</td>
185+
<td>21</td>
186+
<td>4,389</td>
187+
</tr>
188+
<tr>
189+
<td>euint16</td>
190+
<td>29</td>
191+
<td>6,061</td>
192+
</tr>
193+
<tr>
194+
<td>euint32</td>
195+
<td>45</td>
196+
<td>9,405</td>
197+
</tr>
198+
<tr>
199+
<td rowspan="3">rem</td>
200+
<td>euint8</td>
201+
<td>447</td>
202+
<td>93,423</td>
203+
</tr>
204+
<tr>
205+
<td>euint16</td>
206+
<td>1310</td>
207+
<td>273,790</td>
208+
</tr>
209+
<tr>
210+
<td>euint32</td>
211+
<td>4800</td>
212+
<td>1,003,200</td>
213+
</tr>
214+
<tr>
215+
<td rowspan="3">or</td>
216+
<td>euint8</td>
217+
<td>13</td>
218+
<td>2,717</td>
219+
</tr>
220+
<tr>
221+
<td>euint16</td>
222+
<td>21</td>
223+
<td>4,389</td>
224+
</tr>
225+
<tr>
226+
<td>euint32</td>
227+
<td>38</td>
228+
<td>7,942</td>
229+
</tr>
230+
<tr>
231+
<td rowspan="3">xor</td>
232+
<td>euint8</td>
233+
<td>13</td>
234+
<td>2,717</td>
235+
</tr>
236+
<tr>
237+
<td>euint16</td>
238+
<td>21</td>
239+
<td>4,389</td>
240+
</tr>
241+
<tr>
242+
<td>euint32</td>
243+
<td>38</td>
244+
<td>7,942</td>
245+
</tr>
246+
<tr>
247+
<td rowspan="3">eq</td>
248+
<td>euint8</td>
249+
<td>18</td>
250+
<td>3,762</td>
251+
</tr>
252+
<tr>
253+
<td>euint16</td>
254+
<td>25</td>
255+
<td>5,225</td>
256+
</tr>
257+
<tr>
258+
<td>euint32</td>
259+
<td>50</td>
260+
<td>10,450</td>
261+
</tr>
262+
<tr>
263+
<td rowspan="3">ne</td>
264+
<td>euint8</td>
265+
<td>18</td>
266+
<td>3,762</td>
267+
</tr>
268+
<tr>
269+
<td>euint16</td>
270+
<td>25</td>
271+
<td>5,225</td>
272+
</tr>
273+
<tr>
274+
<td>euint32</td>
275+
<td>50</td>
276+
<td>10,450</td>
277+
</tr>
278+
<tr>
279+
<td rowspan="3">min</td>
280+
<td>euint8</td>
281+
<td>41</td>
282+
<td>8,569</td>
283+
</tr>
284+
<tr>
285+
<td>euint16</td>
286+
<td>75</td>
287+
<td>15,675</td>
288+
</tr>
289+
<tr>
290+
<td>euint32</td>
291+
<td>135</td>
292+
<td>28,215</td>
293+
</tr>
294+
<tr>
295+
<td rowspan="3">max</td>
296+
<td>euint8</td>
297+
<td>41</td>
298+
<td>8,569</td>
299+
</tr>
300+
<tr>
301+
<td>euint16</td>
302+
<td>75</td>
303+
<td>15,675</td>
304+
</tr>
305+
<tr>
306+
<td>euint32</td>
307+
<td>135</td>
308+
<td>28,215</td>
309+
</tr>
310+
<tr>
311+
<td rowspan="3">shl</td>
312+
<td>euint8</td>
313+
<td>82</td>
314+
<td>17,138</td>
315+
</tr>
316+
<tr>
317+
<td>euint16</td>
318+
<td>190</td>
319+
<td>39,710</td>
320+
</tr>
321+
<tr>
322+
<td>euint32</td>
323+
<td>422</td>
324+
<td>88,198</td>
325+
</tr>
326+
<tr>
327+
<td rowspan="3">shr</td>
328+
<td>euint8</td>
329+
<td>82</td>
330+
<td>17,138</td>
331+
</tr>
332+
<tr>
333+
<td>euint16</td>
334+
<td>190</td>
335+
<td>39,710</td>
336+
</tr>
337+
<tr>
338+
<td>euint32</td>
339+
<td>422</td>
340+
<td>88,198</td>
341+
</tr>
342+
<tr>
343+
<td rowspan="3">not</td>
344+
<td>euint8</td>
345+
<td>12</td>
346+
<td>2,508</td>
347+
</tr>
348+
<tr>
349+
<td>euint16</td>
350+
<td>22</td>
351+
<td>4,598</td>
352+
</tr>
353+
<tr>
354+
<td>euint32</td>
355+
<td>36</td>
356+
<td>7,524</td>
357+
</tr>
358+
</tbody>
359+
</table>

0 commit comments

Comments
 (0)