sudo apt install linux-tools-common linux-tools-generic linux-tools-$(uname -r) numactl
git clone --recurse-submodules https://github.com/ivan23kor/yaconv.git
cd yaconv && make
- Run either
im2col
oryaconv
binary on a given layer:
./<BINARY> N H W C FH FW M PH PW # outputs GFLOPS
Parameter | Explanation |
---|---|
N | number of images in per batch |
H, W | image height and width |
C | number of input channels |
FH, FW | filter height and width |
M | number of output channels |
PH, PW | vertical and horizontal padding |
- Gather comparative data for
im2col
andyaconv
on a pre-defined grid:
./run.sh # writes run data on disk to ./Results/
The command above will run ./im2col
and ./yaconv
binaries on the following parameter grid:
Parameter | Values |
---|---|
N | Auto-adjusted to make ~100 GFLOPS workload per layer |
H, W | 7 14 28 56 |
C | 32 64 96 128 192 256 384 512 768 960 1024 1152 |
FH, FW | 3 |
M | 32 64 96 128 192 256 384 512 768 960 1024 1152 |
PH, PW | 1 |
GFLOPS and perf stat
data will be in a directory structure:
Results/
|-- im2col
| |-- gflops
| `-- stat
`-- yaconv
|-- gflops
`-- stat
For more information on the output in ./Results/
, run ./run.sh -h
- Gather comparative data for
im2col
oryaconv
on a set of layers given in layers.txt:
./run.sh -i file # (from layers.txt)
./layers.txt
template:
7 7 1024 3 3 32 1 1
5 5 128 3 3 32 1 1
7 7 256 3 3 32 1 1
Note the empty line at the end of the file.
You can find the paper online or download a pdf from this repository.