12. Lab 2: Cortex DSP Benchmark#
12.1. Pre-Lab#
Make a 1:45 to 2:00 minute video of yourself explaining how a basic CPU works.
See teams and Gradescope for more information.
12.2. Lab#
Run the following code on an Arduino Nano 33 BLE Sense.
Then write a technical explanation explaining what is going on. Submit the report on Gradescope.
Tip
If you click on dot_prod_dsp_bench.ino
in the gist above you can clone the repository or access the raw file.
Uno Comparison#
Optionally, you may discuss the differences between the Nano’s benchmarks and the same float and int benchmarks on the Arduino Uno shown in Table 12.1:
Datatype |
Time (microseconds) |
---|---|
int |
5,600 |
float |
21,128 |
Further guidance#
Your report should be well-written and highly technical, but take the tone of an executive summary.
You can use or not use section headings to facilitate the flow, as you see fit.
Assume your reader is a computer engineer who is familiar with Arduino, computer architecture, and dot products but has not run this particular benchmark.
Your references need to be comprised of reputable sources, such as text books and ARM documentation.
Include quantitative analysis of the results of the code run.
Spend that majority of your effort explaining those results from a hardware and software standpoint.
Conclude with a discussion of why this matters and how it may impact edge inference deployments.
Do not exceed 3 pages.
Ensure you include a Documentation statement.
Hint
This is primarily a research lab.
The Designer’s Guide to the Cortex-M Processor, 3rd Edition, by Trevor Martin, Chapter 9: Practical DSP for Cortex-M Microcontrollers has some good info, but you will need several more resources.