Pre-canned tests¶
Goal¶
This section gathers the results of the pre-canned tests.
They should all pass once the platform definition has been updated.
Note
The first initial run of pre-canned tests will report errors as the platform definition template contains standard thresholds (which you’ll update while filling the checklist).
If a default pre-canned test is failing, and it’s because a nominal setting is wrong, then you should update the setting in platform definition JSON file.
TO-DO¶
Run all pre-canned tests and save the results in section Pre-canned tests results of your checklist.
Fill some extra information about the results and test environments.
Detailed steps¶
Important
It’s highly recommended to track any modifications and/or result out of expected range. Please fill a problem report and add their tracking number in the Checklist questionnaire.
System information¶
Indicated the following system information in section System information:
System information |
|
---|---|
OS |
Indicate in what type of host (OS name & release) the pre-canned tests were run. $ lsb_release -a
|
Architecture |
Architecture of host the pre-canned tests were run. $ uname -m
|
Server type |
Server type of host the pre-canned tests were run. $ xbutil examine --device <bdf> --report host --format json --force --output /dev/stdout | grep model
|
AUX cable |
Indicate if AUX cable was used when the pre-canned tests were run. |
Card S/N |
Serial number of the card used when the pre-canned tests were run. $ xbutil examine --device <bdf> --report platform --format json --force --output /dev/stdout | grep serial_number
|
XRT version |
Version of Xilinx Runtime (XRT) installed on host the pre-canned tests were run. $ xbutil --version | grep "Version"
|
Measured download time |
Indicate the download time reported in xbtest output (in seconds). Make sure to reload the xclbin before.
|
Pre-canned test modifications¶
Indicate in section Pre-canned test modifications if you have modified the provided pre-canned test templates with settings for example to increase performance. Justify why you could not insert the settings within the platform definition.
Note
By modifying the platform definition, you make your update available for all tests by default.
dma
pre-canned test¶
Identify CPU affinity:
$ xbutil examine --device <BDF> --report all | grep "CPU Affinity"
Use pre-canned dma test with CPU affinity:
Run xbtest:
$ taskset -c 0,2,4,6,8,10 xbtest -F -d <bdf> -c dma -l dma
Zip the log directory and attach it to this checklist:
$ zip -r dma.zip dma
Add your results to section dma pre-canned test of your checklist.
For each on-board memory, report average BW results for 1 memory bank. For example:
For DDR: report
DDR[0]
average BW results.For HBM: report
HBM[0]
average BW results.
Result is indicated in xbtest message DMA_018
.
Remove/add table rows per on-board memory type (e.g. HBM, DDR, PS_DDR, PL_DDR).
Note
For PCIe 3x16 board, write and read bandwidths should be above 10000 MBps. For PCIe 3x4, they should be above 2500 MBps.
p2p_card
pre-canned test¶
Check P2P is enabled on your source and target cards:
$ xbutil examine --device <source card bdf> | grep P2P
$ xbutil examine --device <target card bdf> | grep P2P
If P2P is not already enabled, run the following command to enable P2P and then warm reboot the host:
$ sudo xbutil configure --device <source card bdf> --p2p enable
$ sudo xbutil configure --device <target card bdf> --p2p enable
$ sudo reboot now
Use p2p_card
pre-canned test specifying which card is source and which card is target:
Run xbtest:
$ xbtest -F -d <source card bdf> -T <target card bdf> -c p2p_card -l p2p_card
Zip the log directory and attach it to this checklist:
$ zip -r p2p_card.zip p2p_card
Add your results to section p2p_card pre-canned test of your checklist.
For each on-board memory, report average BW results for 1 memory bank. For example:
For DDR: report
DDR[0]
average BW results.For HBM: report
HBM[0]
average BW results.
Result is indicated in xbtest message P2P_018
.
Remove/add table rows per on-board memory type (e.g. HBM, DDR, PS_DDR, PL_DDR).
p2p_nvme
pre-canned test¶
Check P2P is enabled on your card:
$ xbutil examine --device <bdf> | grep P2P
If P2P is not already enabled, run the following command to enable P2P and then warm reboot the host:
$ sudo xbutil configure --device <bdf> --p2p enable
$ sudo reboot now
Create a file with write/read permissions in a mounted partition of the NVMe SSD. For example:
$ touch /mnt/nvme0n1p1/file.out; chmod a+w /mnt/nvme0n1p1/file.out
Use pre-canned p2p_nvme test with NVMe file path:
Run xbtest:
$ xbtest -F -d <bdf> -N /mnt/nvme0n1p1/file.out -c p2p_nvme -l p2p_nvmeZip the log directory and attach it to this checklist:
$ zip -r p2p_nvme.zip p2p_nvme
Add your results to section p2p_nvme pre-canned test of your checklist.
For each on-board memory, report average BW results for 1 memory bank. For example:
For DDR: report
DDR[0]
average BW results.For HBM: report
HBM[0]
average BW results.
Report the results on applicable each card modes:
source: The card is used as P2P source (its DMA engine is used to initiates P2P transactions).
Not applicable for NoDMA platforms.
target: The card is used as P2P target.
Result is indicated in xbtest message P2P_018
.
Remove/add table rows per on-board memory type (e.g. HBM, DDR, PS_DDR, PL_DDR).
memory
pre-canned test¶
Use pre-canned memory test:
Run xbtest:
$ xbtest -F -d <bdf> -c memory -l memoryZip the log directory and attach it to this checklist:
$ zip -r memory.zip memory
Add your results to section memory pre-canned test of your checklist.
BW and latency results are indicated in xbtest message MEM_040
.
For single-channel memory CU(s): Report results for one memory bank only.
E.g.
DDR[0]
.For multi-channel memory CU(s): Report combined results:
E.g.
INFO :: MEM_040 :: MEMORY :: HBM :: combined | all | 65233.170 | 65038.179 | 148.3 | 208.3 | OK
Make sure to look at the correct test_mode
: alternate_wr_rd
/ only_wr
/ only_rd
or simultaneous_wr_rd
.
Remove/add table per on-board memory type (e.g. HBM, DDR, PS_DDR, PL_DDR).
memory_host
pre-canned test¶
If the platform supports host memory, use memory_host
pre-canned test:
Enable 1G of host memory:
$ sudo xbutil configure --device <BDF> --host-mem -s 1G enable
Run xbtest:
$ xbtest -F -d <bdf> -c memory_host -l memory_hostZip the log directory and attach it to this checklist:
$ zip -r memory_host.zip memory_host
Add your results to section memory_host pre-canned test of your checklist.
BW and latency results are indicated in xbtest message MEM_040
.
Report results for one memory bank only.
E.g.
HOST[0]
.
Make sure to look at the correct test_mode
: alternate_wr_rd
/ only_wr
/ only_rd
or simultaneous_wr_rd
.
Others pre-canned tests¶
They should all pass.