Skip to content

Latest commit

 

History

History
111 lines (85 loc) · 17.5 KB

File metadata and controls

111 lines (85 loc) · 17.5 KB

Experiments

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.

1. sort

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

2. crypto

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

3. llm-sort and llm-sort-floating

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

4. misc

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

5. instruction

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