-
Notifications
You must be signed in to change notification settings - Fork 10
HowToBenchmark
- One eXternal Benchmarking Harness
- One eXternal Benmarking Device, CWB will fill out details on how to get/build one
The XBH interfaces between the PC (using Ethernet) and the XBD (target), using either I²C, UART or Ethernet (UDP). The current workhorse of XBX is the XBH mk.I, based on an ATmega644 microcontroller and an Ethernet chip. If you want to build one for yourself, you only need some inexpensive equipment:
- 1 AVR-NET-IO board, can be purchased at Pollin
- 1 Break-out board for the DB25 expansion connector of the AVR-NET-IO at Pollin
- 1 ATmega644 microcontroller, since the AVR-NET-IO is shipped with an ATmega32 '644 at Pollin
If you have pre-owned hardware with a '644 and an Ethernet controller you can probably use that as XBH, but the hardware setup listed above is tried and true and therfore recommended for beginners.
You will need an In-System-Programmer (ISP) to get the XBH software into the '644. If you do not already own a suitable ISP the AVR Dragon is a good choice, since it offers ISP and limited JTAG capability at a decent price point. Just look on ebay or other internet shops for it.
- [download:xbx-2.0.1.tar.gz XBX Base System]
- [download:xbh-atmega-2.0.1.tar.gz XBH Firmware for Atmega XBHs]
- At least one platform module
- [download:platform_lm_3s811_evb-2.0.1.tar.gz Platform support for Stellaris LM3S811 Eval Board, requires Stellars drivers]
- [download:platform-atmega-2.0.1.tar.gz Platform support for Atmel ATmega 644, 1281 and 1284P]
- [download:platform_linuxbased-2.0.1.tar.gz Platform support for Linux based targets: Artila M501, NSLU2, FritzBox 7170]
- One or more algopacks
- [download:algopack_xbx-2.0.1.tar.gz XBX algopack] - Details and Terms of Use
- [download:algopack_shavite-2.0.1.tar.gz Shavite algopack] - Details and Terms of Use
- [download:algopack_groestl-2.0.1.tar.gz Groestl algopack] - Details and Terms of Use
- [download:algopack_blake-2.0.1.tar.gz Blake algopack] - Details and Terms of Use
- [download:algopack_avr-crypto-lib-2.0.1.tar.gz AVR-Crypto-Lib algopack] - Details and Terms of Use
- [download:algopack_arm-crypto-lib-2.0.1.tar.gz ARM-Crypto-Lib algopack] - Details and Terms of Use
- [download:algopack_sphlib-2.0.1.tar.gz SPHLIB algopack] - Details and Terms of Use
- [download:algopack_bmw-2.0.1.tar.gz BlueMidnightWish algopack] - Details and Terms of Use
- [download:algopack_luffa-2.0.1.tar.gz Luffa algopack] - Details and Terms of Use
- [download:algopack_shabal-tiny-2.0.1.tar.gz Shabal algopack] - Details and Terms of Use
- [download:algopack_hash3-2.0.1.tar.gz Hash3 conference algopack] - Details and Terms of Use
Hardware and Firmware preparation steps will be filled in by CWB
- Extract xbx base archive
- Change into the newly created folder and extract all other files there
- use
./import_algopack <PATH_TO_ALGOPACK>
for each extracted algopack - copy the sample settings file to "settings" cp settings.sample settings
- edit the settings file and set the "platform" option to the desired value
- run
./compile
if no supported compilers are found or anything else undesirable happens, the script will notify you - run
./execute <IP_OF_XBH>
to start the benchmarking process - after the benchmark is complete, a gz-file called
xbxdata-HOSTNAME-IP_OF_XBH-TIMESTAMP.gz
will be created - the non-compressed results can be found in
bench/PLATFORM_NAME-IP_OF_XBH/
The tools folder contains some helpful scripts for viewing results or errors:
All helper scripts reside in the subdirectory tools and expect their working directory to be the directory where compile and execute reside. In layman's terms: execute all helper scripts by typing tools/<toolname>
Command | Explanation |
---|---|
build_stats | Outputs a simple table containing the build results |
compilererrors | Lists the output of by the compilers |
binaries_wiki_table | Outputs a wiki style table with information about binaries |
Commands | Useful After an execute-Run |
Command | Explanation |
---|---|
try_wiki_table | Outputs a wiki style table containing the results of the checksum tests and quick benchmarks |
measure_wiki_table | Outputs a wiki style table containing the detailed measurement results |
drift_wiki_table | Outputs a wiki style table containing the output of the drift measurements done during execution |
stack_wiki_table | Outputs a wiki style table containing stack measurements |
try_cipher_plot | Draws a plot using gnuplot containing the different implementation speeds of a certain cipher |
Command | Explanation |
---|---|
tocsv | Converts wiki style tables (STDIN) to csv (STDOUT) |
Questions / suggestions / new platforms or new implementations? Mail to [email protected]