A Benchmark for GPU Soft Error Resilience Assessment. Sera is available for download at Sera.
- kernel&instruction_with_num.json
// Contains all
SASS instructionsandoffset addressesfor the GPU application. - test.csv // A test dataset for the GPU application that contains 20,000 fault samples.
- train&val.csv // A training dataset for the GPU application that contains 10,000 fault samples.
- Rodinia-v3.1. The GPU applications under this test suite are described in Rodinia.
- PloyBench. The GPU applications under this test suite are described in PolyBench.
The description of the attributes in test.csv and train&val.csv
| Attribute | Description |
|---|---|
| kernel_name | The name of the target GPU kernel |
| kernel_index | An integer n representing the (n + 1) th dynamic instance of the target kernel, e.g., 0 indicates the first dynamic instance |
| sk_id | The Index of the target kernel |
| static_instID | The Index of the target instruction |
| opcode | Operation type of the target instruction |
| instID | An integer m representing the (m + 1) th dynamic instance of the target instruction |
| instr_count | The number of instructions in the dynamic instance of the target kernel |
| regNo | The number of the target register |
| maxregs | The maximum number of registers for the target kernel |
| beforeVal | The binary value in the target register before a soft error (i.e., a bit-flip fault) occurred |
| fip_pos | The position in the target register where the bit flip occurred |
| fip_tp | The type of bit flip, from 1 to 0 or 0 to 1 |
| blockID | The index of the thread block in which the thread executing the dynamic instance of the target instruction is located |
| TID | The index of the thread that executes the dynamic instance of the target instruction |
| inject_result | The fault injection result of the target soft error, 0 is Masked, 1 is SDC, 2 is DUE. The fault injection tool is NVBitFI |
Note: The all attributes are associated with the target fault site.
Examples: Several fault samples from the BFS application.
| kernel_name | kernel_index | sk_id | dk_id | static_instID | opcode | instID | instr_count | regNo | maxregs | beforeVal | fip_pos | fip_tp | blockID | blockTID | TID | inject_result |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kernel(Node*,int*,bool*,bool*,bool*,int*,int) | 8 | 0 | 4 | 37 | MOV | 150977 | 251201 | 18 | 21 | 0x1 | 15 | 1 | 6 | 54 | 3126 | 0 |
| Kernel2(bool*,bool*,bool*,bool*,int) | 7 | 1 | 3 | 60 | SHF | 22744 | 69536 | 3 | 14 | 0x0 | 3 | 1 | 7 | 158 | 3742 | 2 |
| Kernel(Node*,int*,bool*,bool*,bool*,int*,int) | 10 | 0 | 5 | 37 | MOV | 62292 | 239309 | 18 | 21 | 0x1 | 0 | 0 | 6 | 252 | 3324 | 0 |
| Kernel2(bool*,bool*,bool*,bool*,int) | 9 | 1 | 4 | 64 | LDG | 38008 | 76900 | 0 | 14 | 0x0 | 24 | 1 | 7 | 61 | 3645 | 1 |
| Kernel2(bool*,bool*,bool*,bool*,int) | 9 | 1 | 4 | 56 | S2R | 9721 | 76900 | 3 | 14 | 0x99 | 9 | 1 | 1 | 153 | 665 | 1 |