Using Nordic Power Profile Kit 2, we are measuring power consumptions of certain programs in different microprocessors. We have experimented with Arduino Uno R3 SMD (which we just call R3) and Arduino Uno R4 Minima (which we just call R4) so far. Both are clone devices.
In this benchmark, we test 10 well-known sorting algorithms on our testing devices: Bubble sort, insertion sort, merge sort, quick sort, heap sort, gnome sort, radix sort, shell sort, comb sort and pancake sort.
Click to view the Experiment Log
| Date | Device | Commit | Array Size | Array Type | Circuit | Measurement |
|---|---|---|---|---|---|---|
| 2024-11-18 | R3 | d9e1f62 | 300 | Generated before each algo, pseudo-random | circuit 000 | r3-sort-300-digitalout-5runs.csv.xz |
| 2024-11-18 | R4 | 9acfcf9 | 300 | Generated before each algo, pseudo-random | circuit 001 | r4-sort-300-digitalout-5runs.csv.xz |
| 2024-12-24 | R4 | 36e8f02 | 100 | Sorted, `int[]` with numbers between [-300, 300] | circuit 003 | r4-sort-sortedarray-int-100-3runs.csv.xz |
| 2024-12-24 | R4 | 469a670 | 100 | Reversely sorted, `int[]` with numbers between [-300, 300] | circuit 003 | r4-sort-revsortedarray-int-100-3runs.csv.xz |
| 2024-12-24 | R3 | 469a670 | 100 | Sorted, `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-sortedarray-int-100-3runs.csv.xz |
| 2024-12-24 | R3 | 469a670 | 100 | Reversely sorted, `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-revsortedarray-int-100-3runs.csv.xz |
| 2025-03-03 | R3 | 98cc0d4 | 16 | `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-predefined-int-16-3runs.csv.xz |
| 2025-03-03 | R3 | 2b31e7b | 32 | `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-predefined-int-32-3runs.csv.xz |
| 2025-03-03 | R3 | feba46b | 64 | `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-predefined-int-64-3runs.csv.xz |
| 2025-03-03 | R3 | eddf957 | 128 | `int[]` with numbers between [-300, 300] | circuit 002 | r3-sort-predefined-int-128-3runs.csv.xz |
| 2025-03-04 | R4 | 4969d11 | 16 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-16-3runs.csv.xz |
| 2025-03-04 | R4 | af415ce | 32 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-32-3runs.csv.xz |
| 2025-03-04 | R4 | 518a092 | 64 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-64-3runs.csv.xz |
| 2025-03-04 | R4 | b6df94a | 128 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-128-3runs.csv.xz |
| 2025-03-04 | R4 | cdc5085 | 256 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-256-3runs.csv.xz |
| 2025-03-04 | R4 | e74dbfd | 512 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-512-3runs.csv.xz |
| 2025-03-04 | R4 | 8e71d10 | 1024 | `int[]` with numbers between [INT_MIN, INT_MAX] | circuit 003 | r4-sort-predefined-int-1024-3runs.csv.xz |
| 2025-03-05 | R3 | 322cc27 | 100 | `int[]` with numbers between [-300, 300] | 3.3V circuit 004 | r3-sort-predefined-int-100-3runs-3.3v.csv.xz |
In this benchmark, we evaluate the performance of several cryptographic algorithms by testing different rounds of ChaCha encryption and decryption (8, 12, and 20), various key sizes of AES encryption and decryption (128, 192, and 256). Additionally, we assess AES (128/192/256)-GCM, ChaCha20-Poly1305, as well as Acorn128 and Ascon128 AEAD (authenticated encryption with associated data) scheme.
Click to view the Experiment Log
| Date | Device | Commit Hash | Circuit | Measurement |
|---|---|---|---|---|
| 2024-12-03 | R4 | 65cc397 | circuit 003 | r4-crypto-digitalout-1runs.csv.xz |
| 2024-12-04 | R3 | e1edc7b | circuit 002 | r3-crypto-digitalout-1runs.csv.xz |
| 2024-12-17 | R4 | d486902 | circuit 003 | r4-crypto-digitalout-3runs.csv.xz |
| 2024-12-17 | R3 | d486902 | circuit 002 | r3-crypto-digitalout-3runs.csv.xz |
| 2024-12-24 | R4 | 12b211b | 3.3V circuit 005 | r4-crypto-digitalout-3runs-3.3v.csv.xz |
| 2024-12-24 | R3 | 12b211b | 3.3V circuit 004 | r3-crypto-digitalout-3runs-3.3v.csv.xz |
Here we experiment whether there is a significant difference in the performance of sorting algorithm implementations across different LLMs (ChatGPT 4o, Gemini 1.5 Flash, and Claude 3.5 Haiku). The llm-sort benchmark code is used for arrays of integer type, whereas llm-sort-floating is used for arrays of floating point type.
Click to view the Experiment Log
| Date | Device | Commit Hash | Array Size | Array Type | Array Characteristics | Circuit | Measurement |
|---|---|---|---|---|---|---|---|
| 2024-12-03 | R4 | 65cc397 | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | circuit 003 | r4-llmsort-predefinedarray-int-100-digitalout-1runs.csv.xz |
| 2024-12-04 | R3 | e1edc7b | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | circuit 002 | r3-llmsort-predefinedarray-int-100-digitalout-1runs.csv.xz |
| 2024-12-17 | R4 | d486902 | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | circuit 003 | r4-llmsort-predefinedarray-int-100-digitalout-3runs.csv.xz |
| 2024-12-17 | R4 | d486902 | 50 | float[] with numbers between [0, 300] |
Predefined random array generated with rag. | circuit 003 | r4-llmsortfloat-predefinedarray-float-50-3runs.csv.xz |
| 2024-12-17 | R3 | d486902 | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | circuit 002 | r3-llmsort-predefinedarray-int-100-digitalout-3runs.csv.xz |
| 2024-12-17 | R3 | d486902 | 50 | float[] with numbers between [0, 300] |
Predefined random array generated with rag. | circuit 002 | r3-llmsortfloat-predefinedarray-float-50-3runs.csv.xz |
| 2024-12-17 | R3 | d486902 | 50 | float[] with numbers between [0, 300] |
Predefined random array generated with rag. | circuit 002 | r3-llmsortfloat-predefinedarray-float-50-1runs.csv.xz |
| 2024-12-24 | R4 | 12b211b | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | 3.3V circuit 005 | r4-llmsort-predefinedarray-int-100-digitalout-3runs-3.3v.csv.xz |
| 2024-12-24 | R3 | 5a6fa36 | 100 | int[] with numbers between [-300, 300] |
Predefined random array generated with rag. | 3.3V circuit 004 | r3-llmsort-predefinedarray-int-100-digitalout-3runs-3.3v.csv.xz |
| 2024-12-24 | R3 | e25e6e2 | 50 | float[] with numbers between [0, 300] |
Predefined random array generated with rag. | 3.3V circuit 004 | r3-llmsortfloat-predefinedarray-float-50-3runs-3.3v.csv.xz |
We also gathered a few common algorithms under a miscellaneous category. We picked LCG (Linear Congruential Generator) and MT19937 (Mersenne Twister) PRNGs (Pseudo-random Number Generator), linear and binary search, matrix multiplication, binary GCD (Greatest Common Divisor), Dijkstra, Karatsuba multiplication, iterative and recursive versions of fibonacci and factorial and a basic sum operation as a mixed representation of commonly used algorithms in programs.
Click to view the Experiment Log
| Date | Device | Commit Hash | Circuit | Measurement |
|---|---|---|---|---|
| 2025-03-04 | R4 | 47eda78 | circuit 003 | r4-misc-10runs.csv.xz |
| 2025-03-04 | R3 | 7571754 | circuit 002 | r3-misc-10runs.csv.xz |
lorem ipsum
Click to view the Experiment Log
| Date | Device | Commit Hash | Circuit | Measurement |
|---|---|---|---|---|
| 2025-04-15 | R3 | 3fbeec3 | circuit 002 | r3-instruction-30000-0xFF-3runs.csv.xz |
| 2025-04-15 | R3 | cff6a11 | circuit 002 | r3-instruction-30000-0xFF-isolatedstate-3runs.csv.xz |