diff --git a/README.md b/README.md index 7dbeea7..ded63ba 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # BLAS libraries benchmarks Andrzej Wójtowicz -Document generation date: 2016-05-26 19:23:05 +Document generation date: 2016-05-30 23:06:11 @@ -10,9 +10,11 @@ Document generation date: 2016-05-26 19:23:05 1. [Configuration](#configuration) 2. [Results per host](#results-per-host) * [Intel Core i5-4590 + NVIDIA GeForce GT 430](#intel-core-i5-4590--nvidia-geforce-gt-430) + * [Intel Core i5-4590 + NVIDIA GeForce GTX 750 Ti](#intel-core-i5-4590--nvidia-geforce-gtx-750-ti) * [Intel Core i5-3570](#intel-core-i5-3570) * [Intel Core i3-2120](#intel-core-i3-2120) * [Intel Core i3-3120M](#intel-core-i3-3120m) + * [Intel Core i5-3317U + NVIDIA GeForce GT 630M](#intel-core-i5-3317u--nvidia-geforce-gt-630m) 3. [Results per library](#results-per-library) * [Netlib](#netlib) * [Atlas (st)](#atlas-st) @@ -21,31 +23,34 @@ Document generation date: 2016-05-26 19:23:05 * [GotoBLAS2](#gotoblas2) * [MKL](#mkl) * [BLIS](#blis) + * [cuBLAS](#cublas) *** ## Configuration -**R software**: [Microsoft R Open](https://mran.microsoft.com/open/). +**R software**: [Microsoft R Open](https://mran.microsoft.com/open/) (3.2.4). **Libraries**: |CPU (single-threaded)|CPU (multi-threaded)|GPU| |---|---|---| -|[Netlib](http://www.netlib.org/) (debian package)|[OpenBLAS](http://www.openblas.net/) (debian package)|[NVIDIA cuBLAS](https://developer.nvidia.com/cublas) (NVBLAS + Intel MKL)| -|[ATLAS](http://math-atlas.sourceforge.net/) (debian package)|[ATLAS](http://math-atlas.sourceforge.net/) (dev branch)| | -| |[GotoBLAS2](https://prs.ism.ac.jp/~nakama/SurviveGotoBLAS2/) (Survive fork)| | -| |[Intel MKL](https://mran.microsoft.com/download/) (part of Microsoft R Open)| | -| |[BLIS](https://github.com/flame/blis)| | +|[Netlib](http://www.netlib.org/) (debian package, blas 1.2.20110419, lapack 3.5.0)|[OpenBLAS](http://www.openblas.net/) (debian package, 0.2.12)|[NVIDIA cuBLAS](https://developer.nvidia.com/cublas) (NVBLAS 6.5 + Intel MKL)| +|[ATLAS](http://math-atlas.sourceforge.net/) (debian package, 3.10.2)|[ATLAS](http://math-atlas.sourceforge.net/) (dev branch, 3.11.38)| | +| |[GotoBLAS2](https://prs.ism.ac.jp/~nakama/SurviveGotoBLAS2/) (Survive fork, 3.141)| | +| |[Intel MKL](https://mran.microsoft.com/download/) (part of RevoMath package, 3.2.4)| | +| |[BLIS](https://github.com/flame/blis) (dev branch, 0.2.0+/17.05.2016)| | **Hosts**: |No.|CPU|GPU| |---|---|---| |1.|[Intel Core i5-4590](http://ark.intel.com/products/80815/Intel-Core-i5-4590-Processor-6M-Cache-up-to-3_70-GHz)|[NVIDIA GeForce GT 430](http://www.geforce.com/hardware/desktop-gpus/geforce-gt-430/specifications)| -|2.|[Intel Core i5-3570](http://ark.intel.com/products/65702/Intel-Core-i5-3570-Processor-6M-Cache-up-to-3_80-GHz)| - | -|3.|[Intel Core i3-2120](http://ark.intel.com/products/53426/Intel-Core-i3-2120-Processor-3M-Cache-3_30-GHz)| - | -|4.|[Intel Core i3-3120M](http://ark.intel.com/products/71465/Intel-Core-i3-3120M-Processor-3M-Cache-2_50-GHz)| - | +|2.|[Intel Core i5-4590](http://ark.intel.com/products/80815/Intel-Core-i5-4590-Processor-6M-Cache-up-to-3_70-GHz)|[NVIDIA GeForce GTX 750 Ti](http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-750-ti/specifications)| +|3.|[Intel Core i5-3570](http://ark.intel.com/products/65702/Intel-Core-i5-3570-Processor-6M-Cache-up-to-3_80-GHz)| - | +|4.|[Intel Core i3-2120](http://ark.intel.com/products/53426/Intel-Core-i3-2120-Processor-3M-Cache-3_30-GHz)| - | +|5.|[Intel Core i3-3120M](http://ark.intel.com/products/71465/Intel-Core-i3-3120M-Processor-3M-Cache-2_50-GHz)| - | +|6.|[Intel Core i5-3317U](http://ark.intel.com/products/65707/Intel-Core-i5-3317U-Processor-3M-Cache-up-to-2_60-GHz)|[NVIDIA GeForce GT 630M](http://www.geforce.com/hardware/notebook-gpus/geforce-gt-630m/specifications)| **Benchmarks**: [Urbanek](http://r.research.att.com/benchmarks/R-benchmark-25.R), [Revolution](https://gist.github.com/andrie/24c9672f1ea39af89c66#file-rro-mkl-benchmark-r), [Gcbd](https://cran.r-project.org/web/packages/gcbd/vignettes/gcbd.pdf). @@ -193,7 +198,7 @@ Time in seconds regarding matrix size - right panel on log scale - from 50 to -## Intel Core i5-3570 +## Intel Core i5-4590 + NVIDIA GeForce GTX 750 Ti @@ -331,7 +336,7 @@ Time in seconds regarding matrix size - right panel on log scale - from 50 to -## Intel Core i3-2120 +## Intel Core i5-3570 @@ -469,7 +474,7 @@ Time in seconds regarding matrix size - right panel on log scale - from 50 to -## Intel Core i3-3120M +## Intel Core i3-2120 @@ -607,6 +612,282 @@ Time in seconds regarding matrix size - right panel on log scale - from 50 to +## Intel Core i3-3120M + + + +### Urbanek benchmark + +#### 2800x2800 cross-product matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t1.png) + + + +#### Linear regr. over a 3000x3000 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t2.png) + + + +#### Eigenvalues of a 640x640 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t3.png) + + + +#### Determinant of a 2500x2500 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t4.png) + + + +#### Cholesky decomposition of a 3000x3000 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t5.png) + + + +#### Inverse of a 1600x1600 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t6.png) + + + +#### Escoufier's method on a 45x45 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b1_t7.png) + + + +### Revolution benchmark + +#### Matrix Multiply + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b2_t1.png) + + + +#### Cholesky Factorization + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b2_t2.png) + + + +#### Singular Value Deomposition + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b2_t3.png) + + + +#### Principal Components Analysis + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b2_t4.png) + + + +#### Linear Discriminant Analysis + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h5_b2_t5.png) + + + +### Gcbd benchmark + +#### Matrix Multiply + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h5_b3_t1.png)![](gen/img/img_ph_h5_b3_t1b.png) + + + +#### QR Decomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h5_b3_t2.png)![](gen/img/img_ph_h5_b3_t2b.png) + + + +#### Singular Value Deomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h5_b3_t3.png)![](gen/img/img_ph_h5_b3_t3b.png) + + + +#### Triangular Decomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h5_b3_t4.png)![](gen/img/img_ph_h5_b3_t4b.png) + + + +## Intel Core i5-3317U + NVIDIA GeForce GT 630M + + + +### Urbanek benchmark + +#### 2800x2800 cross-product matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t1.png) + + + +#### Linear regr. over a 3000x3000 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t2.png) + + + +#### Eigenvalues of a 640x640 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t3.png) + + + +#### Determinant of a 2500x2500 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t4.png) + + + +#### Cholesky decomposition of a 3000x3000 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t5.png) + + + +#### Inverse of a 1600x1600 random matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t6.png) + + + +#### Escoufier's method on a 45x45 matrix + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b1_t7.png) + + + +### Revolution benchmark + +#### Matrix Multiply + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b2_t1.png) + + + +#### Cholesky Factorization + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b2_t2.png) + + + +#### Singular Value Deomposition + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b2_t3.png) + + + +#### Principal Components Analysis + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b2_t4.png) + + + +#### Linear Discriminant Analysis + +Time in seconds - 10 runs - lower is better + +![](gen/img/img_ph_h6_b2_t5.png) + + + +### Gcbd benchmark + +#### Matrix Multiply + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h6_b3_t1.png)![](gen/img/img_ph_h6_b3_t1b.png) + + + +#### QR Decomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h6_b3_t2.png)![](gen/img/img_ph_h6_b3_t2b.png) + + + +#### Singular Value Deomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h6_b3_t3.png)![](gen/img/img_ph_h6_b3_t3b.png) + + + +#### Triangular Decomposition + +Time in seconds regarding matrix size - right panel on log scale - from 50 to 5 runs - lower is better + +![](gen/img/img_ph_h6_b3_t4.png)![](gen/img/img_ph_h6_b3_t4b.png) + + + # Results per library diff --git a/gen/data/benchmark.results.rds b/gen/data/benchmark.results.rds index 987f529..708cef2 100644 Binary files a/gen/data/benchmark.results.rds and b/gen/data/benchmark.results.rds differ diff --git a/gen/data/hosts.info.rds b/gen/data/hosts.info.rds index 251b5b2..7a360c2 100644 Binary files a/gen/data/hosts.info.rds and b/gen/data/hosts.info.rds differ diff --git a/gen/img/img_ph_h1_b1_t1.png b/gen/img/img_ph_h1_b1_t1.png index 321d496..18333bd 100644 Binary files a/gen/img/img_ph_h1_b1_t1.png and b/gen/img/img_ph_h1_b1_t1.png differ diff --git a/gen/img/img_ph_h1_b1_t2.png b/gen/img/img_ph_h1_b1_t2.png index 117c436..20092af 100644 Binary files a/gen/img/img_ph_h1_b1_t2.png and b/gen/img/img_ph_h1_b1_t2.png differ diff --git a/gen/img/img_ph_h1_b1_t3.png b/gen/img/img_ph_h1_b1_t3.png index 2aaf536..810cdf3 100644 Binary files a/gen/img/img_ph_h1_b1_t3.png and b/gen/img/img_ph_h1_b1_t3.png differ diff --git a/gen/img/img_ph_h1_b1_t4.png b/gen/img/img_ph_h1_b1_t4.png index d848fec..6583347 100644 Binary files a/gen/img/img_ph_h1_b1_t4.png and b/gen/img/img_ph_h1_b1_t4.png differ diff --git a/gen/img/img_ph_h1_b1_t5.png b/gen/img/img_ph_h1_b1_t5.png index fc3c015..4b88678 100644 Binary files a/gen/img/img_ph_h1_b1_t5.png and b/gen/img/img_ph_h1_b1_t5.png differ diff --git a/gen/img/img_ph_h1_b1_t6.png b/gen/img/img_ph_h1_b1_t6.png index 1b3a336..1d0ccce 100644 Binary files a/gen/img/img_ph_h1_b1_t6.png and b/gen/img/img_ph_h1_b1_t6.png differ diff --git a/gen/img/img_ph_h1_b1_t7.png b/gen/img/img_ph_h1_b1_t7.png index 082c323..262e65b 100644 Binary files a/gen/img/img_ph_h1_b1_t7.png and b/gen/img/img_ph_h1_b1_t7.png differ diff --git a/gen/img/img_ph_h1_b2_t1.png b/gen/img/img_ph_h1_b2_t1.png index 3179936..d999259 100644 Binary files a/gen/img/img_ph_h1_b2_t1.png and b/gen/img/img_ph_h1_b2_t1.png differ diff --git a/gen/img/img_ph_h1_b2_t2.png b/gen/img/img_ph_h1_b2_t2.png index d529280..23e16b4 100644 Binary files a/gen/img/img_ph_h1_b2_t2.png and b/gen/img/img_ph_h1_b2_t2.png differ diff --git a/gen/img/img_ph_h1_b2_t3.png b/gen/img/img_ph_h1_b2_t3.png index 9d2b3f2..c008b18 100644 Binary files a/gen/img/img_ph_h1_b2_t3.png and b/gen/img/img_ph_h1_b2_t3.png differ diff --git a/gen/img/img_ph_h1_b2_t4.png b/gen/img/img_ph_h1_b2_t4.png index 739652d..a6cd916 100644 Binary files a/gen/img/img_ph_h1_b2_t4.png and b/gen/img/img_ph_h1_b2_t4.png differ diff --git a/gen/img/img_ph_h1_b2_t5.png b/gen/img/img_ph_h1_b2_t5.png index 2254fd6..651d418 100644 Binary files a/gen/img/img_ph_h1_b2_t5.png and b/gen/img/img_ph_h1_b2_t5.png differ diff --git a/gen/img/img_ph_h1_b3_t1.png b/gen/img/img_ph_h1_b3_t1.png index e1ba795..ae66014 100644 Binary files a/gen/img/img_ph_h1_b3_t1.png and b/gen/img/img_ph_h1_b3_t1.png differ diff --git a/gen/img/img_ph_h1_b3_t1b.png b/gen/img/img_ph_h1_b3_t1b.png index 28ce104..565bd4a 100644 Binary files a/gen/img/img_ph_h1_b3_t1b.png and b/gen/img/img_ph_h1_b3_t1b.png differ diff --git a/gen/img/img_ph_h1_b3_t2.png b/gen/img/img_ph_h1_b3_t2.png index 7423620..d31fabb 100644 Binary files a/gen/img/img_ph_h1_b3_t2.png and b/gen/img/img_ph_h1_b3_t2.png differ diff --git a/gen/img/img_ph_h1_b3_t2b.png b/gen/img/img_ph_h1_b3_t2b.png index 8caaded..34f6bc0 100644 Binary files a/gen/img/img_ph_h1_b3_t2b.png and b/gen/img/img_ph_h1_b3_t2b.png differ diff --git a/gen/img/img_ph_h1_b3_t3.png b/gen/img/img_ph_h1_b3_t3.png index d79f580..78461c3 100644 Binary files a/gen/img/img_ph_h1_b3_t3.png and b/gen/img/img_ph_h1_b3_t3.png differ diff --git a/gen/img/img_ph_h1_b3_t3b.png b/gen/img/img_ph_h1_b3_t3b.png index d4342ef..09f0ae6 100644 Binary files a/gen/img/img_ph_h1_b3_t3b.png and b/gen/img/img_ph_h1_b3_t3b.png differ diff --git a/gen/img/img_ph_h1_b3_t4.png b/gen/img/img_ph_h1_b3_t4.png index 11ee057..c258288 100644 Binary files a/gen/img/img_ph_h1_b3_t4.png and b/gen/img/img_ph_h1_b3_t4.png differ diff --git a/gen/img/img_ph_h1_b3_t4b.png b/gen/img/img_ph_h1_b3_t4b.png index 0cffb61..cc26a10 100644 Binary files a/gen/img/img_ph_h1_b3_t4b.png and b/gen/img/img_ph_h1_b3_t4b.png differ diff --git a/gen/img/img_ph_h2_b1_t1.png b/gen/img/img_ph_h2_b1_t1.png index 5223881..9b44c49 100644 Binary files a/gen/img/img_ph_h2_b1_t1.png and b/gen/img/img_ph_h2_b1_t1.png differ diff --git a/gen/img/img_ph_h2_b1_t2.png b/gen/img/img_ph_h2_b1_t2.png index d0a139b..de06de1 100644 Binary files a/gen/img/img_ph_h2_b1_t2.png and b/gen/img/img_ph_h2_b1_t2.png differ diff --git a/gen/img/img_ph_h2_b1_t3.png b/gen/img/img_ph_h2_b1_t3.png index ea9ba91..75636ae 100644 Binary files a/gen/img/img_ph_h2_b1_t3.png and b/gen/img/img_ph_h2_b1_t3.png differ diff --git a/gen/img/img_ph_h2_b1_t4.png b/gen/img/img_ph_h2_b1_t4.png index 4756b57..790e094 100644 Binary files a/gen/img/img_ph_h2_b1_t4.png and b/gen/img/img_ph_h2_b1_t4.png differ diff --git a/gen/img/img_ph_h2_b1_t5.png b/gen/img/img_ph_h2_b1_t5.png index 70ef1df..0f083b4 100644 Binary files a/gen/img/img_ph_h2_b1_t5.png and b/gen/img/img_ph_h2_b1_t5.png differ diff --git a/gen/img/img_ph_h2_b1_t6.png b/gen/img/img_ph_h2_b1_t6.png index f6f4a1a..53a3d9b 100644 Binary files a/gen/img/img_ph_h2_b1_t6.png and b/gen/img/img_ph_h2_b1_t6.png differ diff --git a/gen/img/img_ph_h2_b1_t7.png b/gen/img/img_ph_h2_b1_t7.png index d08bd36..6969007 100644 Binary files a/gen/img/img_ph_h2_b1_t7.png and b/gen/img/img_ph_h2_b1_t7.png differ diff --git a/gen/img/img_ph_h2_b2_t1.png b/gen/img/img_ph_h2_b2_t1.png index dad435e..5211822 100644 Binary files a/gen/img/img_ph_h2_b2_t1.png and b/gen/img/img_ph_h2_b2_t1.png differ diff --git a/gen/img/img_ph_h2_b2_t2.png b/gen/img/img_ph_h2_b2_t2.png index 41aaad9..f717732 100644 Binary files a/gen/img/img_ph_h2_b2_t2.png and b/gen/img/img_ph_h2_b2_t2.png differ diff --git a/gen/img/img_ph_h2_b2_t3.png b/gen/img/img_ph_h2_b2_t3.png index 20fb0c8..34ed838 100644 Binary files a/gen/img/img_ph_h2_b2_t3.png and b/gen/img/img_ph_h2_b2_t3.png differ diff --git a/gen/img/img_ph_h2_b2_t4.png b/gen/img/img_ph_h2_b2_t4.png index 2fad7a9..5bfb8b4 100644 Binary files a/gen/img/img_ph_h2_b2_t4.png and b/gen/img/img_ph_h2_b2_t4.png differ diff --git a/gen/img/img_ph_h2_b2_t5.png b/gen/img/img_ph_h2_b2_t5.png index d331c85..9659690 100644 Binary files a/gen/img/img_ph_h2_b2_t5.png and b/gen/img/img_ph_h2_b2_t5.png differ diff --git a/gen/img/img_ph_h2_b3_t1.png b/gen/img/img_ph_h2_b3_t1.png index 492cf0b..36ddbc2 100644 Binary files a/gen/img/img_ph_h2_b3_t1.png and b/gen/img/img_ph_h2_b3_t1.png differ diff --git a/gen/img/img_ph_h2_b3_t1b.png b/gen/img/img_ph_h2_b3_t1b.png index a9d116f..416a84a 100644 Binary files a/gen/img/img_ph_h2_b3_t1b.png and b/gen/img/img_ph_h2_b3_t1b.png differ diff --git a/gen/img/img_ph_h2_b3_t2.png b/gen/img/img_ph_h2_b3_t2.png index 0a0b91b..ad33fa8 100644 Binary files a/gen/img/img_ph_h2_b3_t2.png and b/gen/img/img_ph_h2_b3_t2.png differ diff --git a/gen/img/img_ph_h2_b3_t2b.png b/gen/img/img_ph_h2_b3_t2b.png index 34775fa..9aa9064 100644 Binary files a/gen/img/img_ph_h2_b3_t2b.png and b/gen/img/img_ph_h2_b3_t2b.png differ diff --git a/gen/img/img_ph_h2_b3_t3.png b/gen/img/img_ph_h2_b3_t3.png index ff339b8..5c2e130 100644 Binary files a/gen/img/img_ph_h2_b3_t3.png and b/gen/img/img_ph_h2_b3_t3.png differ diff --git a/gen/img/img_ph_h2_b3_t3b.png b/gen/img/img_ph_h2_b3_t3b.png index 3ad54c6..b4c6a9e 100644 Binary files a/gen/img/img_ph_h2_b3_t3b.png and b/gen/img/img_ph_h2_b3_t3b.png differ diff --git a/gen/img/img_ph_h2_b3_t4.png b/gen/img/img_ph_h2_b3_t4.png index c5bdd5f..7906064 100644 Binary files a/gen/img/img_ph_h2_b3_t4.png and b/gen/img/img_ph_h2_b3_t4.png differ diff --git a/gen/img/img_ph_h2_b3_t4b.png b/gen/img/img_ph_h2_b3_t4b.png index 8befcba..4d6725c 100644 Binary files a/gen/img/img_ph_h2_b3_t4b.png and b/gen/img/img_ph_h2_b3_t4b.png differ diff --git a/gen/img/img_ph_h3_b1_t1.png b/gen/img/img_ph_h3_b1_t1.png index af80e24..a1a2015 100644 Binary files a/gen/img/img_ph_h3_b1_t1.png and b/gen/img/img_ph_h3_b1_t1.png differ diff --git a/gen/img/img_ph_h3_b1_t2.png b/gen/img/img_ph_h3_b1_t2.png index 227d404..ba2a84b 100644 Binary files a/gen/img/img_ph_h3_b1_t2.png and b/gen/img/img_ph_h3_b1_t2.png differ diff --git a/gen/img/img_ph_h3_b1_t3.png b/gen/img/img_ph_h3_b1_t3.png index 5b1a01e..a6099a7 100644 Binary files a/gen/img/img_ph_h3_b1_t3.png and b/gen/img/img_ph_h3_b1_t3.png differ diff --git a/gen/img/img_ph_h3_b1_t4.png b/gen/img/img_ph_h3_b1_t4.png index 5acc965..b641671 100644 Binary files a/gen/img/img_ph_h3_b1_t4.png and b/gen/img/img_ph_h3_b1_t4.png differ diff --git a/gen/img/img_ph_h3_b1_t5.png b/gen/img/img_ph_h3_b1_t5.png index b854c0e..59be9ed 100644 Binary files a/gen/img/img_ph_h3_b1_t5.png and b/gen/img/img_ph_h3_b1_t5.png differ diff --git a/gen/img/img_ph_h3_b1_t6.png b/gen/img/img_ph_h3_b1_t6.png index 14857b4..68f0d5b 100644 Binary files a/gen/img/img_ph_h3_b1_t6.png and b/gen/img/img_ph_h3_b1_t6.png differ diff --git a/gen/img/img_ph_h3_b1_t7.png b/gen/img/img_ph_h3_b1_t7.png index 7582548..dac4517 100644 Binary files a/gen/img/img_ph_h3_b1_t7.png and b/gen/img/img_ph_h3_b1_t7.png differ diff --git a/gen/img/img_ph_h3_b2_t1.png b/gen/img/img_ph_h3_b2_t1.png index 2f052fd..99a7362 100644 Binary files a/gen/img/img_ph_h3_b2_t1.png and b/gen/img/img_ph_h3_b2_t1.png differ diff --git a/gen/img/img_ph_h3_b2_t2.png b/gen/img/img_ph_h3_b2_t2.png index b797c26..df3b707 100644 Binary files a/gen/img/img_ph_h3_b2_t2.png and b/gen/img/img_ph_h3_b2_t2.png differ diff --git a/gen/img/img_ph_h3_b2_t3.png b/gen/img/img_ph_h3_b2_t3.png index 40bdb7d..68d2a64 100644 Binary files a/gen/img/img_ph_h3_b2_t3.png and b/gen/img/img_ph_h3_b2_t3.png differ diff --git a/gen/img/img_ph_h3_b2_t4.png b/gen/img/img_ph_h3_b2_t4.png index 2d98fd1..05fc95d 100644 Binary files a/gen/img/img_ph_h3_b2_t4.png and b/gen/img/img_ph_h3_b2_t4.png differ diff --git a/gen/img/img_ph_h3_b2_t5.png b/gen/img/img_ph_h3_b2_t5.png index 1d0d8e5..1435596 100644 Binary files a/gen/img/img_ph_h3_b2_t5.png and b/gen/img/img_ph_h3_b2_t5.png differ diff --git a/gen/img/img_ph_h3_b3_t1.png b/gen/img/img_ph_h3_b3_t1.png index 20b2d74..3082022 100644 Binary files a/gen/img/img_ph_h3_b3_t1.png and b/gen/img/img_ph_h3_b3_t1.png differ diff --git a/gen/img/img_ph_h3_b3_t1b.png b/gen/img/img_ph_h3_b3_t1b.png index e1ae397..b78aa86 100644 Binary files a/gen/img/img_ph_h3_b3_t1b.png and b/gen/img/img_ph_h3_b3_t1b.png differ diff --git a/gen/img/img_ph_h3_b3_t2.png b/gen/img/img_ph_h3_b3_t2.png index 5fa02a0..9edfe85 100644 Binary files a/gen/img/img_ph_h3_b3_t2.png and b/gen/img/img_ph_h3_b3_t2.png differ diff --git a/gen/img/img_ph_h3_b3_t2b.png b/gen/img/img_ph_h3_b3_t2b.png index 6598fcf..7139837 100644 Binary files a/gen/img/img_ph_h3_b3_t2b.png and b/gen/img/img_ph_h3_b3_t2b.png differ diff --git a/gen/img/img_ph_h3_b3_t3.png b/gen/img/img_ph_h3_b3_t3.png index a98027f..5398b00 100644 Binary files a/gen/img/img_ph_h3_b3_t3.png and b/gen/img/img_ph_h3_b3_t3.png differ diff --git a/gen/img/img_ph_h3_b3_t3b.png b/gen/img/img_ph_h3_b3_t3b.png index 578e702..6e84dfe 100644 Binary files a/gen/img/img_ph_h3_b3_t3b.png and b/gen/img/img_ph_h3_b3_t3b.png differ diff --git a/gen/img/img_ph_h3_b3_t4.png b/gen/img/img_ph_h3_b3_t4.png index fc1fc01..ddc0598 100644 Binary files a/gen/img/img_ph_h3_b3_t4.png and b/gen/img/img_ph_h3_b3_t4.png differ diff --git a/gen/img/img_ph_h3_b3_t4b.png b/gen/img/img_ph_h3_b3_t4b.png index ab94a90..5b6c255 100644 Binary files a/gen/img/img_ph_h3_b3_t4b.png and b/gen/img/img_ph_h3_b3_t4b.png differ diff --git a/gen/img/img_ph_h4_b1_t1.png b/gen/img/img_ph_h4_b1_t1.png index e5daddc..155c4c1 100644 Binary files a/gen/img/img_ph_h4_b1_t1.png and b/gen/img/img_ph_h4_b1_t1.png differ diff --git a/gen/img/img_ph_h4_b1_t2.png b/gen/img/img_ph_h4_b1_t2.png index 9885a71..012b195 100644 Binary files a/gen/img/img_ph_h4_b1_t2.png and b/gen/img/img_ph_h4_b1_t2.png differ diff --git a/gen/img/img_ph_h4_b1_t3.png b/gen/img/img_ph_h4_b1_t3.png index 919e4b1..fb7b571 100644 Binary files a/gen/img/img_ph_h4_b1_t3.png and b/gen/img/img_ph_h4_b1_t3.png differ diff --git a/gen/img/img_ph_h4_b1_t4.png b/gen/img/img_ph_h4_b1_t4.png index 67d48f2..e008a42 100644 Binary files a/gen/img/img_ph_h4_b1_t4.png and b/gen/img/img_ph_h4_b1_t4.png differ diff --git a/gen/img/img_ph_h4_b1_t5.png b/gen/img/img_ph_h4_b1_t5.png index 974f349..52108e3 100644 Binary files a/gen/img/img_ph_h4_b1_t5.png and b/gen/img/img_ph_h4_b1_t5.png differ diff --git a/gen/img/img_ph_h4_b1_t6.png b/gen/img/img_ph_h4_b1_t6.png index d24d83b..4420c26 100644 Binary files a/gen/img/img_ph_h4_b1_t6.png and b/gen/img/img_ph_h4_b1_t6.png differ diff --git a/gen/img/img_ph_h4_b1_t7.png b/gen/img/img_ph_h4_b1_t7.png index 37ad0f5..a06ed72 100644 Binary files a/gen/img/img_ph_h4_b1_t7.png and b/gen/img/img_ph_h4_b1_t7.png differ diff --git a/gen/img/img_ph_h4_b2_t1.png b/gen/img/img_ph_h4_b2_t1.png index ccd626d..ba5ef4d 100644 Binary files a/gen/img/img_ph_h4_b2_t1.png and b/gen/img/img_ph_h4_b2_t1.png differ diff --git a/gen/img/img_ph_h4_b2_t2.png b/gen/img/img_ph_h4_b2_t2.png index 4f72685..922c929 100644 Binary files a/gen/img/img_ph_h4_b2_t2.png and b/gen/img/img_ph_h4_b2_t2.png differ diff --git a/gen/img/img_ph_h4_b2_t3.png b/gen/img/img_ph_h4_b2_t3.png index 7e5578b..c3f3004 100644 Binary files a/gen/img/img_ph_h4_b2_t3.png and b/gen/img/img_ph_h4_b2_t3.png differ diff --git a/gen/img/img_ph_h4_b2_t4.png b/gen/img/img_ph_h4_b2_t4.png index bad8a5e..ea5adbb 100644 Binary files a/gen/img/img_ph_h4_b2_t4.png and b/gen/img/img_ph_h4_b2_t4.png differ diff --git a/gen/img/img_ph_h4_b2_t5.png b/gen/img/img_ph_h4_b2_t5.png index 76ead3b..62c3d08 100644 Binary files a/gen/img/img_ph_h4_b2_t5.png and b/gen/img/img_ph_h4_b2_t5.png differ diff --git a/gen/img/img_ph_h4_b3_t1.png b/gen/img/img_ph_h4_b3_t1.png index 615597c..e8ff03c 100644 Binary files a/gen/img/img_ph_h4_b3_t1.png and b/gen/img/img_ph_h4_b3_t1.png differ diff --git a/gen/img/img_ph_h4_b3_t1b.png b/gen/img/img_ph_h4_b3_t1b.png index fd5ba94..0f63b7c 100644 Binary files a/gen/img/img_ph_h4_b3_t1b.png and b/gen/img/img_ph_h4_b3_t1b.png differ diff --git a/gen/img/img_ph_h4_b3_t2.png b/gen/img/img_ph_h4_b3_t2.png index fcde574..2c8ce1b 100644 Binary files a/gen/img/img_ph_h4_b3_t2.png and b/gen/img/img_ph_h4_b3_t2.png differ diff --git a/gen/img/img_ph_h4_b3_t2b.png b/gen/img/img_ph_h4_b3_t2b.png index 4fa26d8..bca8517 100644 Binary files a/gen/img/img_ph_h4_b3_t2b.png and b/gen/img/img_ph_h4_b3_t2b.png differ diff --git a/gen/img/img_ph_h4_b3_t3.png b/gen/img/img_ph_h4_b3_t3.png index fd5a876..03be8bd 100644 Binary files a/gen/img/img_ph_h4_b3_t3.png and b/gen/img/img_ph_h4_b3_t3.png differ diff --git a/gen/img/img_ph_h4_b3_t3b.png b/gen/img/img_ph_h4_b3_t3b.png index 75bd8be..5da27c3 100644 Binary files a/gen/img/img_ph_h4_b3_t3b.png and b/gen/img/img_ph_h4_b3_t3b.png differ diff --git a/gen/img/img_ph_h4_b3_t4.png b/gen/img/img_ph_h4_b3_t4.png index daa64e5..092c2c3 100644 Binary files a/gen/img/img_ph_h4_b3_t4.png and b/gen/img/img_ph_h4_b3_t4.png differ diff --git a/gen/img/img_ph_h4_b3_t4b.png b/gen/img/img_ph_h4_b3_t4b.png index ba3b43c..a851b61 100644 Binary files a/gen/img/img_ph_h4_b3_t4b.png and b/gen/img/img_ph_h4_b3_t4b.png differ diff --git a/gen/img/img_ph_h5_b1_t1.png b/gen/img/img_ph_h5_b1_t1.png new file mode 100644 index 0000000..2eb952d Binary files /dev/null and b/gen/img/img_ph_h5_b1_t1.png differ diff --git a/gen/img/img_ph_h5_b1_t2.png b/gen/img/img_ph_h5_b1_t2.png new file mode 100644 index 0000000..fcfce5d Binary files /dev/null and b/gen/img/img_ph_h5_b1_t2.png differ diff --git a/gen/img/img_ph_h5_b1_t3.png b/gen/img/img_ph_h5_b1_t3.png new file mode 100644 index 0000000..28cdeb0 Binary files /dev/null and b/gen/img/img_ph_h5_b1_t3.png differ diff --git a/gen/img/img_ph_h5_b1_t4.png b/gen/img/img_ph_h5_b1_t4.png new file mode 100644 index 0000000..57488e3 Binary files /dev/null and b/gen/img/img_ph_h5_b1_t4.png differ diff --git a/gen/img/img_ph_h5_b1_t5.png b/gen/img/img_ph_h5_b1_t5.png new file mode 100644 index 0000000..35bac2b Binary files /dev/null and b/gen/img/img_ph_h5_b1_t5.png differ diff --git a/gen/img/img_ph_h5_b1_t6.png b/gen/img/img_ph_h5_b1_t6.png new file mode 100644 index 0000000..bffbc2d Binary files /dev/null and b/gen/img/img_ph_h5_b1_t6.png differ diff --git a/gen/img/img_ph_h5_b1_t7.png b/gen/img/img_ph_h5_b1_t7.png new file mode 100644 index 0000000..1c3dc7e Binary files /dev/null and b/gen/img/img_ph_h5_b1_t7.png differ diff --git a/gen/img/img_ph_h5_b2_t1.png b/gen/img/img_ph_h5_b2_t1.png new file mode 100644 index 0000000..286d5c5 Binary files /dev/null and b/gen/img/img_ph_h5_b2_t1.png differ diff --git a/gen/img/img_ph_h5_b2_t2.png b/gen/img/img_ph_h5_b2_t2.png new file mode 100644 index 0000000..7f0ac5e Binary files /dev/null and b/gen/img/img_ph_h5_b2_t2.png differ diff --git a/gen/img/img_ph_h5_b2_t3.png b/gen/img/img_ph_h5_b2_t3.png new file mode 100644 index 0000000..4d6b6a3 Binary files /dev/null and b/gen/img/img_ph_h5_b2_t3.png differ diff --git a/gen/img/img_ph_h5_b2_t4.png b/gen/img/img_ph_h5_b2_t4.png new file mode 100644 index 0000000..da56509 Binary files /dev/null and b/gen/img/img_ph_h5_b2_t4.png differ diff --git a/gen/img/img_ph_h5_b2_t5.png b/gen/img/img_ph_h5_b2_t5.png new file mode 100644 index 0000000..79769c2 Binary files /dev/null and b/gen/img/img_ph_h5_b2_t5.png differ diff --git a/gen/img/img_ph_h5_b3_t1.png b/gen/img/img_ph_h5_b3_t1.png new file mode 100644 index 0000000..defd299 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t1.png differ diff --git a/gen/img/img_ph_h5_b3_t1b.png b/gen/img/img_ph_h5_b3_t1b.png new file mode 100644 index 0000000..e1cf4b1 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t1b.png differ diff --git a/gen/img/img_ph_h5_b3_t2.png b/gen/img/img_ph_h5_b3_t2.png new file mode 100644 index 0000000..bbfcc03 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t2.png differ diff --git a/gen/img/img_ph_h5_b3_t2b.png b/gen/img/img_ph_h5_b3_t2b.png new file mode 100644 index 0000000..fac5971 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t2b.png differ diff --git a/gen/img/img_ph_h5_b3_t3.png b/gen/img/img_ph_h5_b3_t3.png new file mode 100644 index 0000000..55beff4 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t3.png differ diff --git a/gen/img/img_ph_h5_b3_t3b.png b/gen/img/img_ph_h5_b3_t3b.png new file mode 100644 index 0000000..15a17d5 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t3b.png differ diff --git a/gen/img/img_ph_h5_b3_t4.png b/gen/img/img_ph_h5_b3_t4.png new file mode 100644 index 0000000..b0c40a4 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t4.png differ diff --git a/gen/img/img_ph_h5_b3_t4b.png b/gen/img/img_ph_h5_b3_t4b.png new file mode 100644 index 0000000..a249323 Binary files /dev/null and b/gen/img/img_ph_h5_b3_t4b.png differ diff --git a/gen/img/img_ph_h6_b1_t1.png b/gen/img/img_ph_h6_b1_t1.png new file mode 100644 index 0000000..0c7e6f1 Binary files /dev/null and b/gen/img/img_ph_h6_b1_t1.png differ diff --git a/gen/img/img_ph_h6_b1_t2.png b/gen/img/img_ph_h6_b1_t2.png new file mode 100644 index 0000000..14f1685 Binary files /dev/null and b/gen/img/img_ph_h6_b1_t2.png differ diff --git a/gen/img/img_ph_h6_b1_t3.png b/gen/img/img_ph_h6_b1_t3.png new file mode 100644 index 0000000..9034f7d Binary files /dev/null and b/gen/img/img_ph_h6_b1_t3.png differ diff --git a/gen/img/img_ph_h6_b1_t4.png b/gen/img/img_ph_h6_b1_t4.png new file mode 100644 index 0000000..2203c57 Binary files /dev/null and b/gen/img/img_ph_h6_b1_t4.png differ diff --git a/gen/img/img_ph_h6_b1_t5.png b/gen/img/img_ph_h6_b1_t5.png new file mode 100644 index 0000000..94ba4b7 Binary files /dev/null and b/gen/img/img_ph_h6_b1_t5.png differ diff --git a/gen/img/img_ph_h6_b1_t6.png b/gen/img/img_ph_h6_b1_t6.png new file mode 100644 index 0000000..5ce4543 Binary files /dev/null and b/gen/img/img_ph_h6_b1_t6.png differ diff --git a/gen/img/img_ph_h6_b1_t7.png b/gen/img/img_ph_h6_b1_t7.png new file mode 100644 index 0000000..d93623d Binary files /dev/null and b/gen/img/img_ph_h6_b1_t7.png differ diff --git a/gen/img/img_ph_h6_b2_t1.png b/gen/img/img_ph_h6_b2_t1.png new file mode 100644 index 0000000..d755b3e Binary files /dev/null and b/gen/img/img_ph_h6_b2_t1.png differ diff --git a/gen/img/img_ph_h6_b2_t2.png b/gen/img/img_ph_h6_b2_t2.png new file mode 100644 index 0000000..51d1e11 Binary files /dev/null and b/gen/img/img_ph_h6_b2_t2.png differ diff --git a/gen/img/img_ph_h6_b2_t3.png b/gen/img/img_ph_h6_b2_t3.png new file mode 100644 index 0000000..ffb5b87 Binary files /dev/null and b/gen/img/img_ph_h6_b2_t3.png differ diff --git a/gen/img/img_ph_h6_b2_t4.png b/gen/img/img_ph_h6_b2_t4.png new file mode 100644 index 0000000..9aa3c0e Binary files /dev/null and b/gen/img/img_ph_h6_b2_t4.png differ diff --git a/gen/img/img_ph_h6_b2_t5.png b/gen/img/img_ph_h6_b2_t5.png new file mode 100644 index 0000000..5d01467 Binary files /dev/null and b/gen/img/img_ph_h6_b2_t5.png differ diff --git a/gen/img/img_ph_h6_b3_t1.png b/gen/img/img_ph_h6_b3_t1.png new file mode 100644 index 0000000..9ea79b9 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t1.png differ diff --git a/gen/img/img_ph_h6_b3_t1b.png b/gen/img/img_ph_h6_b3_t1b.png new file mode 100644 index 0000000..61073f6 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t1b.png differ diff --git a/gen/img/img_ph_h6_b3_t2.png b/gen/img/img_ph_h6_b3_t2.png new file mode 100644 index 0000000..958c3c3 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t2.png differ diff --git a/gen/img/img_ph_h6_b3_t2b.png b/gen/img/img_ph_h6_b3_t2b.png new file mode 100644 index 0000000..fdcc924 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t2b.png differ diff --git a/gen/img/img_ph_h6_b3_t3.png b/gen/img/img_ph_h6_b3_t3.png new file mode 100644 index 0000000..444e58d Binary files /dev/null and b/gen/img/img_ph_h6_b3_t3.png differ diff --git a/gen/img/img_ph_h6_b3_t3b.png b/gen/img/img_ph_h6_b3_t3b.png new file mode 100644 index 0000000..731f6a9 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t3b.png differ diff --git a/gen/img/img_ph_h6_b3_t4.png b/gen/img/img_ph_h6_b3_t4.png new file mode 100644 index 0000000..a17a9c5 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t4.png differ diff --git a/gen/img/img_ph_h6_b3_t4b.png b/gen/img/img_ph_h6_b3_t4b.png new file mode 100644 index 0000000..6e3c1d6 Binary files /dev/null and b/gen/img/img_ph_h6_b3_t4b.png differ diff --git a/gen/img/img_pl_l1_b1_t1.png b/gen/img/img_pl_l1_b1_t1.png index 299b107..dfa4b93 100644 Binary files a/gen/img/img_pl_l1_b1_t1.png and b/gen/img/img_pl_l1_b1_t1.png differ diff --git a/gen/img/img_pl_l1_b1_t2.png b/gen/img/img_pl_l1_b1_t2.png index c6e2298..1207a1d 100644 Binary files a/gen/img/img_pl_l1_b1_t2.png and b/gen/img/img_pl_l1_b1_t2.png differ diff --git a/gen/img/img_pl_l1_b1_t3.png b/gen/img/img_pl_l1_b1_t3.png index ee146e7..3433a73 100644 Binary files a/gen/img/img_pl_l1_b1_t3.png and b/gen/img/img_pl_l1_b1_t3.png differ diff --git a/gen/img/img_pl_l1_b1_t4.png b/gen/img/img_pl_l1_b1_t4.png index 77a3636..24ad6c4 100644 Binary files a/gen/img/img_pl_l1_b1_t4.png and b/gen/img/img_pl_l1_b1_t4.png differ diff --git a/gen/img/img_pl_l1_b1_t5.png b/gen/img/img_pl_l1_b1_t5.png index e44612f..6ca6bb3 100644 Binary files a/gen/img/img_pl_l1_b1_t5.png and b/gen/img/img_pl_l1_b1_t5.png differ diff --git a/gen/img/img_pl_l1_b1_t6.png b/gen/img/img_pl_l1_b1_t6.png index 059c164..8afb4c6 100644 Binary files a/gen/img/img_pl_l1_b1_t6.png and b/gen/img/img_pl_l1_b1_t6.png differ diff --git a/gen/img/img_pl_l1_b1_t7.png b/gen/img/img_pl_l1_b1_t7.png index b046a6b..5c9b172 100644 Binary files a/gen/img/img_pl_l1_b1_t7.png and b/gen/img/img_pl_l1_b1_t7.png differ diff --git a/gen/img/img_pl_l1_b2_t1.png b/gen/img/img_pl_l1_b2_t1.png index e901fb5..d33a111 100644 Binary files a/gen/img/img_pl_l1_b2_t1.png and b/gen/img/img_pl_l1_b2_t1.png differ diff --git a/gen/img/img_pl_l1_b2_t2.png b/gen/img/img_pl_l1_b2_t2.png index 142c1ef..f2dc231 100644 Binary files a/gen/img/img_pl_l1_b2_t2.png and b/gen/img/img_pl_l1_b2_t2.png differ diff --git a/gen/img/img_pl_l1_b2_t3.png b/gen/img/img_pl_l1_b2_t3.png index 1ae4067..e3fd180 100644 Binary files a/gen/img/img_pl_l1_b2_t3.png and b/gen/img/img_pl_l1_b2_t3.png differ diff --git a/gen/img/img_pl_l1_b2_t4.png b/gen/img/img_pl_l1_b2_t4.png index 34eafa3..615159a 100644 Binary files a/gen/img/img_pl_l1_b2_t4.png and b/gen/img/img_pl_l1_b2_t4.png differ diff --git a/gen/img/img_pl_l1_b2_t5.png b/gen/img/img_pl_l1_b2_t5.png index 2f7a8d0..a40223f 100644 Binary files a/gen/img/img_pl_l1_b2_t5.png and b/gen/img/img_pl_l1_b2_t5.png differ diff --git a/gen/img/img_pl_l1_b3_t1.png b/gen/img/img_pl_l1_b3_t1.png index 1972c1e..389ba3b 100644 Binary files a/gen/img/img_pl_l1_b3_t1.png and b/gen/img/img_pl_l1_b3_t1.png differ diff --git a/gen/img/img_pl_l1_b3_t1b.png b/gen/img/img_pl_l1_b3_t1b.png index 56f097b..a3a5492 100644 Binary files a/gen/img/img_pl_l1_b3_t1b.png and b/gen/img/img_pl_l1_b3_t1b.png differ diff --git a/gen/img/img_pl_l1_b3_t2.png b/gen/img/img_pl_l1_b3_t2.png index 9836c02..26146df 100644 Binary files a/gen/img/img_pl_l1_b3_t2.png and b/gen/img/img_pl_l1_b3_t2.png differ diff --git a/gen/img/img_pl_l1_b3_t2b.png b/gen/img/img_pl_l1_b3_t2b.png index 2a14b98..02ed806 100644 Binary files a/gen/img/img_pl_l1_b3_t2b.png and b/gen/img/img_pl_l1_b3_t2b.png differ diff --git a/gen/img/img_pl_l1_b3_t3.png b/gen/img/img_pl_l1_b3_t3.png index b644978..3a54236 100644 Binary files a/gen/img/img_pl_l1_b3_t3.png and b/gen/img/img_pl_l1_b3_t3.png differ diff --git a/gen/img/img_pl_l1_b3_t3b.png b/gen/img/img_pl_l1_b3_t3b.png index 3646c59..da2d61f 100644 Binary files a/gen/img/img_pl_l1_b3_t3b.png and b/gen/img/img_pl_l1_b3_t3b.png differ diff --git a/gen/img/img_pl_l1_b3_t4.png b/gen/img/img_pl_l1_b3_t4.png index 63e3b6a..2d76c9e 100644 Binary files a/gen/img/img_pl_l1_b3_t4.png and b/gen/img/img_pl_l1_b3_t4.png differ diff --git a/gen/img/img_pl_l1_b3_t4b.png b/gen/img/img_pl_l1_b3_t4b.png index dbd74f7..3c357e6 100644 Binary files a/gen/img/img_pl_l1_b3_t4b.png and b/gen/img/img_pl_l1_b3_t4b.png differ diff --git a/gen/img/img_pl_l2_b1_t1.png b/gen/img/img_pl_l2_b1_t1.png index 831c2bf..8e93795 100644 Binary files a/gen/img/img_pl_l2_b1_t1.png and b/gen/img/img_pl_l2_b1_t1.png differ diff --git a/gen/img/img_pl_l2_b1_t2.png b/gen/img/img_pl_l2_b1_t2.png index 6da08bc..f57a68f 100644 Binary files a/gen/img/img_pl_l2_b1_t2.png and b/gen/img/img_pl_l2_b1_t2.png differ diff --git a/gen/img/img_pl_l2_b1_t3.png b/gen/img/img_pl_l2_b1_t3.png index c67324d..0458c47 100644 Binary files a/gen/img/img_pl_l2_b1_t3.png and b/gen/img/img_pl_l2_b1_t3.png differ diff --git a/gen/img/img_pl_l2_b1_t4.png b/gen/img/img_pl_l2_b1_t4.png index 537ae5e..978089e 100644 Binary files a/gen/img/img_pl_l2_b1_t4.png and b/gen/img/img_pl_l2_b1_t4.png differ diff --git a/gen/img/img_pl_l2_b1_t5.png b/gen/img/img_pl_l2_b1_t5.png index 2545ad1..a50ea5e 100644 Binary files a/gen/img/img_pl_l2_b1_t5.png and b/gen/img/img_pl_l2_b1_t5.png differ diff --git a/gen/img/img_pl_l2_b1_t6.png b/gen/img/img_pl_l2_b1_t6.png index 0954019..200a7fb 100644 Binary files a/gen/img/img_pl_l2_b1_t6.png and b/gen/img/img_pl_l2_b1_t6.png differ diff --git a/gen/img/img_pl_l2_b1_t7.png b/gen/img/img_pl_l2_b1_t7.png index 8677344..450e8c8 100644 Binary files a/gen/img/img_pl_l2_b1_t7.png and b/gen/img/img_pl_l2_b1_t7.png differ diff --git a/gen/img/img_pl_l2_b2_t1.png b/gen/img/img_pl_l2_b2_t1.png index caa62f8..9bbed47 100644 Binary files a/gen/img/img_pl_l2_b2_t1.png and b/gen/img/img_pl_l2_b2_t1.png differ diff --git a/gen/img/img_pl_l2_b2_t2.png b/gen/img/img_pl_l2_b2_t2.png index 205396f..4f9d162 100644 Binary files a/gen/img/img_pl_l2_b2_t2.png and b/gen/img/img_pl_l2_b2_t2.png differ diff --git a/gen/img/img_pl_l2_b2_t3.png b/gen/img/img_pl_l2_b2_t3.png index 44ab894..75dcf63 100644 Binary files a/gen/img/img_pl_l2_b2_t3.png and b/gen/img/img_pl_l2_b2_t3.png differ diff --git a/gen/img/img_pl_l2_b2_t4.png b/gen/img/img_pl_l2_b2_t4.png index ae458fd..21d0015 100644 Binary files a/gen/img/img_pl_l2_b2_t4.png and b/gen/img/img_pl_l2_b2_t4.png differ diff --git a/gen/img/img_pl_l2_b2_t5.png b/gen/img/img_pl_l2_b2_t5.png index 9d27286..2062c2c 100644 Binary files a/gen/img/img_pl_l2_b2_t5.png and b/gen/img/img_pl_l2_b2_t5.png differ diff --git a/gen/img/img_pl_l2_b3_t1.png b/gen/img/img_pl_l2_b3_t1.png index 869e8e6..7c33b1c 100644 Binary files a/gen/img/img_pl_l2_b3_t1.png and b/gen/img/img_pl_l2_b3_t1.png differ diff --git a/gen/img/img_pl_l2_b3_t1b.png b/gen/img/img_pl_l2_b3_t1b.png index e7ff7ce..56752ea 100644 Binary files a/gen/img/img_pl_l2_b3_t1b.png and b/gen/img/img_pl_l2_b3_t1b.png differ diff --git a/gen/img/img_pl_l2_b3_t2.png b/gen/img/img_pl_l2_b3_t2.png index 09577e8..d02f998 100644 Binary files a/gen/img/img_pl_l2_b3_t2.png and b/gen/img/img_pl_l2_b3_t2.png differ diff --git a/gen/img/img_pl_l2_b3_t2b.png b/gen/img/img_pl_l2_b3_t2b.png index 985a5c2..0cedf76 100644 Binary files a/gen/img/img_pl_l2_b3_t2b.png and b/gen/img/img_pl_l2_b3_t2b.png differ diff --git a/gen/img/img_pl_l2_b3_t3.png b/gen/img/img_pl_l2_b3_t3.png index 4898aeb..4052763 100644 Binary files a/gen/img/img_pl_l2_b3_t3.png and b/gen/img/img_pl_l2_b3_t3.png differ diff --git a/gen/img/img_pl_l2_b3_t3b.png b/gen/img/img_pl_l2_b3_t3b.png index 5d3e4f3..7a72b13 100644 Binary files a/gen/img/img_pl_l2_b3_t3b.png and b/gen/img/img_pl_l2_b3_t3b.png differ diff --git a/gen/img/img_pl_l2_b3_t4.png b/gen/img/img_pl_l2_b3_t4.png index 043bdd0..1457b0a 100644 Binary files a/gen/img/img_pl_l2_b3_t4.png and b/gen/img/img_pl_l2_b3_t4.png differ diff --git a/gen/img/img_pl_l2_b3_t4b.png b/gen/img/img_pl_l2_b3_t4b.png index e00b508..3ebc2bc 100644 Binary files a/gen/img/img_pl_l2_b3_t4b.png and b/gen/img/img_pl_l2_b3_t4b.png differ diff --git a/gen/img/img_pl_l3_b1_t1.png b/gen/img/img_pl_l3_b1_t1.png index 35623d2..6f4040b 100644 Binary files a/gen/img/img_pl_l3_b1_t1.png and b/gen/img/img_pl_l3_b1_t1.png differ diff --git a/gen/img/img_pl_l3_b1_t2.png b/gen/img/img_pl_l3_b1_t2.png index a2f41d2..65e4460 100644 Binary files a/gen/img/img_pl_l3_b1_t2.png and b/gen/img/img_pl_l3_b1_t2.png differ diff --git a/gen/img/img_pl_l3_b1_t3.png b/gen/img/img_pl_l3_b1_t3.png index be7ac19..1ce3cdb 100644 Binary files a/gen/img/img_pl_l3_b1_t3.png and b/gen/img/img_pl_l3_b1_t3.png differ diff --git a/gen/img/img_pl_l3_b1_t4.png b/gen/img/img_pl_l3_b1_t4.png index 7ebd54f..e3369ac 100644 Binary files a/gen/img/img_pl_l3_b1_t4.png and b/gen/img/img_pl_l3_b1_t4.png differ diff --git a/gen/img/img_pl_l3_b1_t5.png b/gen/img/img_pl_l3_b1_t5.png index 557f77e..3c16792 100644 Binary files a/gen/img/img_pl_l3_b1_t5.png and b/gen/img/img_pl_l3_b1_t5.png differ diff --git a/gen/img/img_pl_l3_b1_t6.png b/gen/img/img_pl_l3_b1_t6.png index d94890f..72b6ec0 100644 Binary files a/gen/img/img_pl_l3_b1_t6.png and b/gen/img/img_pl_l3_b1_t6.png differ diff --git a/gen/img/img_pl_l3_b1_t7.png b/gen/img/img_pl_l3_b1_t7.png index 9a4a6d3..891be5a 100644 Binary files a/gen/img/img_pl_l3_b1_t7.png and b/gen/img/img_pl_l3_b1_t7.png differ diff --git a/gen/img/img_pl_l3_b2_t1.png b/gen/img/img_pl_l3_b2_t1.png index f2233b7..5dba6b5 100644 Binary files a/gen/img/img_pl_l3_b2_t1.png and b/gen/img/img_pl_l3_b2_t1.png differ diff --git a/gen/img/img_pl_l3_b2_t2.png b/gen/img/img_pl_l3_b2_t2.png index f89369f..3980901 100644 Binary files a/gen/img/img_pl_l3_b2_t2.png and b/gen/img/img_pl_l3_b2_t2.png differ diff --git a/gen/img/img_pl_l3_b2_t3.png b/gen/img/img_pl_l3_b2_t3.png index a548155..28b9821 100644 Binary files a/gen/img/img_pl_l3_b2_t3.png and b/gen/img/img_pl_l3_b2_t3.png differ diff --git a/gen/img/img_pl_l3_b2_t4.png b/gen/img/img_pl_l3_b2_t4.png index 28a5176..12c7200 100644 Binary files a/gen/img/img_pl_l3_b2_t4.png and b/gen/img/img_pl_l3_b2_t4.png differ diff --git a/gen/img/img_pl_l3_b2_t5.png b/gen/img/img_pl_l3_b2_t5.png index 20d4c1d..c0fc25a 100644 Binary files a/gen/img/img_pl_l3_b2_t5.png and b/gen/img/img_pl_l3_b2_t5.png differ diff --git a/gen/img/img_pl_l3_b3_t1.png b/gen/img/img_pl_l3_b3_t1.png index 5180e50..5a123b2 100644 Binary files a/gen/img/img_pl_l3_b3_t1.png and b/gen/img/img_pl_l3_b3_t1.png differ diff --git a/gen/img/img_pl_l3_b3_t1b.png b/gen/img/img_pl_l3_b3_t1b.png index 22e6343..3851774 100644 Binary files a/gen/img/img_pl_l3_b3_t1b.png and b/gen/img/img_pl_l3_b3_t1b.png differ diff --git a/gen/img/img_pl_l3_b3_t2.png b/gen/img/img_pl_l3_b3_t2.png index bbb6c54..36ca3b1 100644 Binary files a/gen/img/img_pl_l3_b3_t2.png and b/gen/img/img_pl_l3_b3_t2.png differ diff --git a/gen/img/img_pl_l3_b3_t2b.png b/gen/img/img_pl_l3_b3_t2b.png index a50b237..80a4da1 100644 Binary files a/gen/img/img_pl_l3_b3_t2b.png and b/gen/img/img_pl_l3_b3_t2b.png differ diff --git a/gen/img/img_pl_l3_b3_t3.png b/gen/img/img_pl_l3_b3_t3.png index ef3f036..3a92411 100644 Binary files a/gen/img/img_pl_l3_b3_t3.png and b/gen/img/img_pl_l3_b3_t3.png differ diff --git a/gen/img/img_pl_l3_b3_t3b.png b/gen/img/img_pl_l3_b3_t3b.png index 14418ea..1b3a6f9 100644 Binary files a/gen/img/img_pl_l3_b3_t3b.png and b/gen/img/img_pl_l3_b3_t3b.png differ diff --git a/gen/img/img_pl_l3_b3_t4.png b/gen/img/img_pl_l3_b3_t4.png index 58b1149..15c87a7 100644 Binary files a/gen/img/img_pl_l3_b3_t4.png and b/gen/img/img_pl_l3_b3_t4.png differ diff --git a/gen/img/img_pl_l3_b3_t4b.png b/gen/img/img_pl_l3_b3_t4b.png index 1852749..9cd2d9c 100644 Binary files a/gen/img/img_pl_l3_b3_t4b.png and b/gen/img/img_pl_l3_b3_t4b.png differ diff --git a/gen/img/img_pl_l4_b1_t1.png b/gen/img/img_pl_l4_b1_t1.png index 16d6b31..8f21f84 100644 Binary files a/gen/img/img_pl_l4_b1_t1.png and b/gen/img/img_pl_l4_b1_t1.png differ diff --git a/gen/img/img_pl_l4_b1_t2.png b/gen/img/img_pl_l4_b1_t2.png index 9cda993..35dd444 100644 Binary files a/gen/img/img_pl_l4_b1_t2.png and b/gen/img/img_pl_l4_b1_t2.png differ diff --git a/gen/img/img_pl_l4_b1_t3.png b/gen/img/img_pl_l4_b1_t3.png index 1360e8d..3de2cc8 100644 Binary files a/gen/img/img_pl_l4_b1_t3.png and b/gen/img/img_pl_l4_b1_t3.png differ diff --git a/gen/img/img_pl_l4_b1_t4.png b/gen/img/img_pl_l4_b1_t4.png index 20ad312..adcc8ff 100644 Binary files a/gen/img/img_pl_l4_b1_t4.png and b/gen/img/img_pl_l4_b1_t4.png differ diff --git a/gen/img/img_pl_l4_b1_t5.png b/gen/img/img_pl_l4_b1_t5.png index 9af1827..109399d 100644 Binary files a/gen/img/img_pl_l4_b1_t5.png and b/gen/img/img_pl_l4_b1_t5.png differ diff --git a/gen/img/img_pl_l4_b1_t6.png b/gen/img/img_pl_l4_b1_t6.png index 8f63922..0021660 100644 Binary files a/gen/img/img_pl_l4_b1_t6.png and b/gen/img/img_pl_l4_b1_t6.png differ diff --git a/gen/img/img_pl_l4_b1_t7.png b/gen/img/img_pl_l4_b1_t7.png index 0f0bfd7..ca4a802 100644 Binary files a/gen/img/img_pl_l4_b1_t7.png and b/gen/img/img_pl_l4_b1_t7.png differ diff --git a/gen/img/img_pl_l4_b2_t1.png b/gen/img/img_pl_l4_b2_t1.png index a2e11de..5a41d27 100644 Binary files a/gen/img/img_pl_l4_b2_t1.png and b/gen/img/img_pl_l4_b2_t1.png differ diff --git a/gen/img/img_pl_l4_b2_t2.png b/gen/img/img_pl_l4_b2_t2.png index 2510f42..8c6511b 100644 Binary files a/gen/img/img_pl_l4_b2_t2.png and b/gen/img/img_pl_l4_b2_t2.png differ diff --git a/gen/img/img_pl_l4_b2_t3.png b/gen/img/img_pl_l4_b2_t3.png index 9729b19..d48dde4 100644 Binary files a/gen/img/img_pl_l4_b2_t3.png and b/gen/img/img_pl_l4_b2_t3.png differ diff --git a/gen/img/img_pl_l4_b2_t4.png b/gen/img/img_pl_l4_b2_t4.png index f90cfee..4fd6c2b 100644 Binary files a/gen/img/img_pl_l4_b2_t4.png and b/gen/img/img_pl_l4_b2_t4.png differ diff --git a/gen/img/img_pl_l4_b2_t5.png b/gen/img/img_pl_l4_b2_t5.png index fda539a..fcf7b94 100644 Binary files a/gen/img/img_pl_l4_b2_t5.png and b/gen/img/img_pl_l4_b2_t5.png differ diff --git a/gen/img/img_pl_l4_b3_t1.png b/gen/img/img_pl_l4_b3_t1.png index 027fc33..bda6d79 100644 Binary files a/gen/img/img_pl_l4_b3_t1.png and b/gen/img/img_pl_l4_b3_t1.png differ diff --git a/gen/img/img_pl_l4_b3_t1b.png b/gen/img/img_pl_l4_b3_t1b.png index f05331a..06750af 100644 Binary files a/gen/img/img_pl_l4_b3_t1b.png and b/gen/img/img_pl_l4_b3_t1b.png differ diff --git a/gen/img/img_pl_l4_b3_t2.png b/gen/img/img_pl_l4_b3_t2.png index e15000e..9fb8fda 100644 Binary files a/gen/img/img_pl_l4_b3_t2.png and b/gen/img/img_pl_l4_b3_t2.png differ diff --git a/gen/img/img_pl_l4_b3_t2b.png b/gen/img/img_pl_l4_b3_t2b.png index 6b2c452..1200b9a 100644 Binary files a/gen/img/img_pl_l4_b3_t2b.png and b/gen/img/img_pl_l4_b3_t2b.png differ diff --git a/gen/img/img_pl_l4_b3_t3.png b/gen/img/img_pl_l4_b3_t3.png index 4b17c6a..79b096e 100644 Binary files a/gen/img/img_pl_l4_b3_t3.png and b/gen/img/img_pl_l4_b3_t3.png differ diff --git a/gen/img/img_pl_l4_b3_t3b.png b/gen/img/img_pl_l4_b3_t3b.png index e5f882e..89717e0 100644 Binary files a/gen/img/img_pl_l4_b3_t3b.png and b/gen/img/img_pl_l4_b3_t3b.png differ diff --git a/gen/img/img_pl_l4_b3_t4.png b/gen/img/img_pl_l4_b3_t4.png index ba7064d..20823ea 100644 Binary files a/gen/img/img_pl_l4_b3_t4.png and b/gen/img/img_pl_l4_b3_t4.png differ diff --git a/gen/img/img_pl_l4_b3_t4b.png b/gen/img/img_pl_l4_b3_t4b.png index 58ccbf4..8bc6ece 100644 Binary files a/gen/img/img_pl_l4_b3_t4b.png and b/gen/img/img_pl_l4_b3_t4b.png differ diff --git a/gen/img/img_pl_l5_b1_t1.png b/gen/img/img_pl_l5_b1_t1.png index dbb5761..de0ce07 100644 Binary files a/gen/img/img_pl_l5_b1_t1.png and b/gen/img/img_pl_l5_b1_t1.png differ diff --git a/gen/img/img_pl_l5_b1_t2.png b/gen/img/img_pl_l5_b1_t2.png index defb41d..2ed16dc 100644 Binary files a/gen/img/img_pl_l5_b1_t2.png and b/gen/img/img_pl_l5_b1_t2.png differ diff --git a/gen/img/img_pl_l5_b1_t3.png b/gen/img/img_pl_l5_b1_t3.png index be3f5f0..126bb63 100644 Binary files a/gen/img/img_pl_l5_b1_t3.png and b/gen/img/img_pl_l5_b1_t3.png differ diff --git a/gen/img/img_pl_l5_b1_t4.png b/gen/img/img_pl_l5_b1_t4.png index 5cb443c..13011b5 100644 Binary files a/gen/img/img_pl_l5_b1_t4.png and b/gen/img/img_pl_l5_b1_t4.png differ diff --git a/gen/img/img_pl_l5_b1_t5.png b/gen/img/img_pl_l5_b1_t5.png index ab46783..977846b 100644 Binary files a/gen/img/img_pl_l5_b1_t5.png and b/gen/img/img_pl_l5_b1_t5.png differ diff --git a/gen/img/img_pl_l5_b1_t6.png b/gen/img/img_pl_l5_b1_t6.png index 3f6816c..2c03a7c 100644 Binary files a/gen/img/img_pl_l5_b1_t6.png and b/gen/img/img_pl_l5_b1_t6.png differ diff --git a/gen/img/img_pl_l5_b1_t7.png b/gen/img/img_pl_l5_b1_t7.png index af61b62..7a280f0 100644 Binary files a/gen/img/img_pl_l5_b1_t7.png and b/gen/img/img_pl_l5_b1_t7.png differ diff --git a/gen/img/img_pl_l5_b2_t1.png b/gen/img/img_pl_l5_b2_t1.png index 5844b73..b6d7d49 100644 Binary files a/gen/img/img_pl_l5_b2_t1.png and b/gen/img/img_pl_l5_b2_t1.png differ diff --git a/gen/img/img_pl_l5_b2_t2.png b/gen/img/img_pl_l5_b2_t2.png index f1093a0..31bc95f 100644 Binary files a/gen/img/img_pl_l5_b2_t2.png and b/gen/img/img_pl_l5_b2_t2.png differ diff --git a/gen/img/img_pl_l5_b2_t3.png b/gen/img/img_pl_l5_b2_t3.png index 4bef468..ee39666 100644 Binary files a/gen/img/img_pl_l5_b2_t3.png and b/gen/img/img_pl_l5_b2_t3.png differ diff --git a/gen/img/img_pl_l5_b2_t4.png b/gen/img/img_pl_l5_b2_t4.png index e70f1b3..660062d 100644 Binary files a/gen/img/img_pl_l5_b2_t4.png and b/gen/img/img_pl_l5_b2_t4.png differ diff --git a/gen/img/img_pl_l5_b2_t5.png b/gen/img/img_pl_l5_b2_t5.png index a7b9245..ad511d9 100644 Binary files a/gen/img/img_pl_l5_b2_t5.png and b/gen/img/img_pl_l5_b2_t5.png differ diff --git a/gen/img/img_pl_l5_b3_t1.png b/gen/img/img_pl_l5_b3_t1.png index 1010956..0a8abc8 100644 Binary files a/gen/img/img_pl_l5_b3_t1.png and b/gen/img/img_pl_l5_b3_t1.png differ diff --git a/gen/img/img_pl_l5_b3_t1b.png b/gen/img/img_pl_l5_b3_t1b.png index 090acf2..eeac7b3 100644 Binary files a/gen/img/img_pl_l5_b3_t1b.png and b/gen/img/img_pl_l5_b3_t1b.png differ diff --git a/gen/img/img_pl_l5_b3_t2.png b/gen/img/img_pl_l5_b3_t2.png index 0c32e4e..78b5274 100644 Binary files a/gen/img/img_pl_l5_b3_t2.png and b/gen/img/img_pl_l5_b3_t2.png differ diff --git a/gen/img/img_pl_l5_b3_t2b.png b/gen/img/img_pl_l5_b3_t2b.png index 1956f10..8d3165f 100644 Binary files a/gen/img/img_pl_l5_b3_t2b.png and b/gen/img/img_pl_l5_b3_t2b.png differ diff --git a/gen/img/img_pl_l5_b3_t3.png b/gen/img/img_pl_l5_b3_t3.png index 3779ebb..f5e233b 100644 Binary files a/gen/img/img_pl_l5_b3_t3.png and b/gen/img/img_pl_l5_b3_t3.png differ diff --git a/gen/img/img_pl_l5_b3_t3b.png b/gen/img/img_pl_l5_b3_t3b.png index 9776365..22e8522 100644 Binary files a/gen/img/img_pl_l5_b3_t3b.png and b/gen/img/img_pl_l5_b3_t3b.png differ diff --git a/gen/img/img_pl_l5_b3_t4.png b/gen/img/img_pl_l5_b3_t4.png index 0b40af9..88c328f 100644 Binary files a/gen/img/img_pl_l5_b3_t4.png and b/gen/img/img_pl_l5_b3_t4.png differ diff --git a/gen/img/img_pl_l5_b3_t4b.png b/gen/img/img_pl_l5_b3_t4b.png index 2592269..a7e067e 100644 Binary files a/gen/img/img_pl_l5_b3_t4b.png and b/gen/img/img_pl_l5_b3_t4b.png differ diff --git a/gen/img/img_pl_l6_b1_t1.png b/gen/img/img_pl_l6_b1_t1.png index 99e13e5..545737c 100644 Binary files a/gen/img/img_pl_l6_b1_t1.png and b/gen/img/img_pl_l6_b1_t1.png differ diff --git a/gen/img/img_pl_l6_b1_t2.png b/gen/img/img_pl_l6_b1_t2.png index 36be8ac..1160a52 100644 Binary files a/gen/img/img_pl_l6_b1_t2.png and b/gen/img/img_pl_l6_b1_t2.png differ diff --git a/gen/img/img_pl_l6_b1_t3.png b/gen/img/img_pl_l6_b1_t3.png index 7318299..7b00633 100644 Binary files a/gen/img/img_pl_l6_b1_t3.png and b/gen/img/img_pl_l6_b1_t3.png differ diff --git a/gen/img/img_pl_l6_b1_t4.png b/gen/img/img_pl_l6_b1_t4.png index 602e605..c65d741 100644 Binary files a/gen/img/img_pl_l6_b1_t4.png and b/gen/img/img_pl_l6_b1_t4.png differ diff --git a/gen/img/img_pl_l6_b1_t5.png b/gen/img/img_pl_l6_b1_t5.png index 34ccdfc..75e5d72 100644 Binary files a/gen/img/img_pl_l6_b1_t5.png and b/gen/img/img_pl_l6_b1_t5.png differ diff --git a/gen/img/img_pl_l6_b1_t6.png b/gen/img/img_pl_l6_b1_t6.png index 38ee2fe..d95a507 100644 Binary files a/gen/img/img_pl_l6_b1_t6.png and b/gen/img/img_pl_l6_b1_t6.png differ diff --git a/gen/img/img_pl_l6_b1_t7.png b/gen/img/img_pl_l6_b1_t7.png index 433e3e9..9fe3a21 100644 Binary files a/gen/img/img_pl_l6_b1_t7.png and b/gen/img/img_pl_l6_b1_t7.png differ diff --git a/gen/img/img_pl_l6_b2_t1.png b/gen/img/img_pl_l6_b2_t1.png index 6bd9ae0..98ce78b 100644 Binary files a/gen/img/img_pl_l6_b2_t1.png and b/gen/img/img_pl_l6_b2_t1.png differ diff --git a/gen/img/img_pl_l6_b2_t2.png b/gen/img/img_pl_l6_b2_t2.png index 211b2bc..81fc1c9 100644 Binary files a/gen/img/img_pl_l6_b2_t2.png and b/gen/img/img_pl_l6_b2_t2.png differ diff --git a/gen/img/img_pl_l6_b2_t3.png b/gen/img/img_pl_l6_b2_t3.png index 77f3799..4638687 100644 Binary files a/gen/img/img_pl_l6_b2_t3.png and b/gen/img/img_pl_l6_b2_t3.png differ diff --git a/gen/img/img_pl_l6_b2_t4.png b/gen/img/img_pl_l6_b2_t4.png index fc001f3..3eb0ba6 100644 Binary files a/gen/img/img_pl_l6_b2_t4.png and b/gen/img/img_pl_l6_b2_t4.png differ diff --git a/gen/img/img_pl_l6_b2_t5.png b/gen/img/img_pl_l6_b2_t5.png index 648f4fd..839e885 100644 Binary files a/gen/img/img_pl_l6_b2_t5.png and b/gen/img/img_pl_l6_b2_t5.png differ diff --git a/gen/img/img_pl_l6_b3_t1.png b/gen/img/img_pl_l6_b3_t1.png index 25296c9..cb71a5f 100644 Binary files a/gen/img/img_pl_l6_b3_t1.png and b/gen/img/img_pl_l6_b3_t1.png differ diff --git a/gen/img/img_pl_l6_b3_t1b.png b/gen/img/img_pl_l6_b3_t1b.png index c05e28e..68392ba 100644 Binary files a/gen/img/img_pl_l6_b3_t1b.png and b/gen/img/img_pl_l6_b3_t1b.png differ diff --git a/gen/img/img_pl_l6_b3_t2.png b/gen/img/img_pl_l6_b3_t2.png index 9c7e8a8..1fe27a0 100644 Binary files a/gen/img/img_pl_l6_b3_t2.png and b/gen/img/img_pl_l6_b3_t2.png differ diff --git a/gen/img/img_pl_l6_b3_t2b.png b/gen/img/img_pl_l6_b3_t2b.png index 7913096..6fbcc43 100644 Binary files a/gen/img/img_pl_l6_b3_t2b.png and b/gen/img/img_pl_l6_b3_t2b.png differ diff --git a/gen/img/img_pl_l6_b3_t3.png b/gen/img/img_pl_l6_b3_t3.png index 3925bfc..239514f 100644 Binary files a/gen/img/img_pl_l6_b3_t3.png and b/gen/img/img_pl_l6_b3_t3.png differ diff --git a/gen/img/img_pl_l6_b3_t3b.png b/gen/img/img_pl_l6_b3_t3b.png index 56d1b77..4469cae 100644 Binary files a/gen/img/img_pl_l6_b3_t3b.png and b/gen/img/img_pl_l6_b3_t3b.png differ diff --git a/gen/img/img_pl_l6_b3_t4.png b/gen/img/img_pl_l6_b3_t4.png index 7b55802..a0bc23e 100644 Binary files a/gen/img/img_pl_l6_b3_t4.png and b/gen/img/img_pl_l6_b3_t4.png differ diff --git a/gen/img/img_pl_l6_b3_t4b.png b/gen/img/img_pl_l6_b3_t4b.png index d260692..6c95127 100644 Binary files a/gen/img/img_pl_l6_b3_t4b.png and b/gen/img/img_pl_l6_b3_t4b.png differ diff --git a/gen/img/img_pl_l7_b1_t1.png b/gen/img/img_pl_l7_b1_t1.png index bea3833..863b2de 100644 Binary files a/gen/img/img_pl_l7_b1_t1.png and b/gen/img/img_pl_l7_b1_t1.png differ diff --git a/gen/img/img_pl_l7_b1_t2.png b/gen/img/img_pl_l7_b1_t2.png index 0fafa21..cf56d82 100644 Binary files a/gen/img/img_pl_l7_b1_t2.png and b/gen/img/img_pl_l7_b1_t2.png differ diff --git a/gen/img/img_pl_l7_b1_t3.png b/gen/img/img_pl_l7_b1_t3.png index 0352075..cd6916f 100644 Binary files a/gen/img/img_pl_l7_b1_t3.png and b/gen/img/img_pl_l7_b1_t3.png differ diff --git a/gen/img/img_pl_l7_b1_t4.png b/gen/img/img_pl_l7_b1_t4.png index c9ac6d9..c779a89 100644 Binary files a/gen/img/img_pl_l7_b1_t4.png and b/gen/img/img_pl_l7_b1_t4.png differ diff --git a/gen/img/img_pl_l7_b1_t5.png b/gen/img/img_pl_l7_b1_t5.png index 1e91ab4..34c1ba5 100644 Binary files a/gen/img/img_pl_l7_b1_t5.png and b/gen/img/img_pl_l7_b1_t5.png differ diff --git a/gen/img/img_pl_l7_b1_t6.png b/gen/img/img_pl_l7_b1_t6.png index 7ab627d..c0cca50 100644 Binary files a/gen/img/img_pl_l7_b1_t6.png and b/gen/img/img_pl_l7_b1_t6.png differ diff --git a/gen/img/img_pl_l7_b1_t7.png b/gen/img/img_pl_l7_b1_t7.png index 8ed58c2..c45e772 100644 Binary files a/gen/img/img_pl_l7_b1_t7.png and b/gen/img/img_pl_l7_b1_t7.png differ diff --git a/gen/img/img_pl_l7_b2_t1.png b/gen/img/img_pl_l7_b2_t1.png index 7b8800b..4b595c3 100644 Binary files a/gen/img/img_pl_l7_b2_t1.png and b/gen/img/img_pl_l7_b2_t1.png differ diff --git a/gen/img/img_pl_l7_b2_t2.png b/gen/img/img_pl_l7_b2_t2.png index 6f4fa06..2d881c4 100644 Binary files a/gen/img/img_pl_l7_b2_t2.png and b/gen/img/img_pl_l7_b2_t2.png differ diff --git a/gen/img/img_pl_l7_b2_t3.png b/gen/img/img_pl_l7_b2_t3.png index 054f695..9edc627 100644 Binary files a/gen/img/img_pl_l7_b2_t3.png and b/gen/img/img_pl_l7_b2_t3.png differ diff --git a/gen/img/img_pl_l7_b2_t4.png b/gen/img/img_pl_l7_b2_t4.png index 383c91c..a24a720 100644 Binary files a/gen/img/img_pl_l7_b2_t4.png and b/gen/img/img_pl_l7_b2_t4.png differ diff --git a/gen/img/img_pl_l7_b2_t5.png b/gen/img/img_pl_l7_b2_t5.png index 437898b..de50b21 100644 Binary files a/gen/img/img_pl_l7_b2_t5.png and b/gen/img/img_pl_l7_b2_t5.png differ diff --git a/gen/img/img_pl_l7_b3_t1.png b/gen/img/img_pl_l7_b3_t1.png index a42e6e4..c994115 100644 Binary files a/gen/img/img_pl_l7_b3_t1.png and b/gen/img/img_pl_l7_b3_t1.png differ diff --git a/gen/img/img_pl_l7_b3_t1b.png b/gen/img/img_pl_l7_b3_t1b.png index 86998ab..055619f 100644 Binary files a/gen/img/img_pl_l7_b3_t1b.png and b/gen/img/img_pl_l7_b3_t1b.png differ diff --git a/gen/img/img_pl_l7_b3_t2.png b/gen/img/img_pl_l7_b3_t2.png index cb5b7ae..13c3e9b 100644 Binary files a/gen/img/img_pl_l7_b3_t2.png and b/gen/img/img_pl_l7_b3_t2.png differ diff --git a/gen/img/img_pl_l7_b3_t2b.png b/gen/img/img_pl_l7_b3_t2b.png index a6b39ac..464801a 100644 Binary files a/gen/img/img_pl_l7_b3_t2b.png and b/gen/img/img_pl_l7_b3_t2b.png differ diff --git a/gen/img/img_pl_l7_b3_t3.png b/gen/img/img_pl_l7_b3_t3.png index 412cd98..10985b3 100644 Binary files a/gen/img/img_pl_l7_b3_t3.png and b/gen/img/img_pl_l7_b3_t3.png differ diff --git a/gen/img/img_pl_l7_b3_t3b.png b/gen/img/img_pl_l7_b3_t3b.png index fb7953a..db80e0c 100644 Binary files a/gen/img/img_pl_l7_b3_t3b.png and b/gen/img/img_pl_l7_b3_t3b.png differ diff --git a/gen/img/img_pl_l7_b3_t4.png b/gen/img/img_pl_l7_b3_t4.png index 4a861bb..0f1af15 100644 Binary files a/gen/img/img_pl_l7_b3_t4.png and b/gen/img/img_pl_l7_b3_t4.png differ diff --git a/gen/img/img_pl_l7_b3_t4b.png b/gen/img/img_pl_l7_b3_t4b.png index 37f5555..99b3199 100644 Binary files a/gen/img/img_pl_l7_b3_t4b.png and b/gen/img/img_pl_l7_b3_t4b.png differ diff --git a/gen/img/img_pl_l8_b1_t1.png b/gen/img/img_pl_l8_b1_t1.png index 326b835..71f2ccb 100644 Binary files a/gen/img/img_pl_l8_b1_t1.png and b/gen/img/img_pl_l8_b1_t1.png differ diff --git a/gen/img/img_pl_l8_b1_t2.png b/gen/img/img_pl_l8_b1_t2.png index 0e9eda3..a9853c0 100644 Binary files a/gen/img/img_pl_l8_b1_t2.png and b/gen/img/img_pl_l8_b1_t2.png differ diff --git a/gen/img/img_pl_l8_b1_t3.png b/gen/img/img_pl_l8_b1_t3.png index da947bd..c2b79c6 100644 Binary files a/gen/img/img_pl_l8_b1_t3.png and b/gen/img/img_pl_l8_b1_t3.png differ diff --git a/gen/img/img_pl_l8_b1_t4.png b/gen/img/img_pl_l8_b1_t4.png index ae96e6d..6d13f84 100644 Binary files a/gen/img/img_pl_l8_b1_t4.png and b/gen/img/img_pl_l8_b1_t4.png differ diff --git a/gen/img/img_pl_l8_b1_t5.png b/gen/img/img_pl_l8_b1_t5.png index 63a3c23..48a6759 100644 Binary files a/gen/img/img_pl_l8_b1_t5.png and b/gen/img/img_pl_l8_b1_t5.png differ diff --git a/gen/img/img_pl_l8_b1_t6.png b/gen/img/img_pl_l8_b1_t6.png index 25e15cf..1f2cc90 100644 Binary files a/gen/img/img_pl_l8_b1_t6.png and b/gen/img/img_pl_l8_b1_t6.png differ diff --git a/gen/img/img_pl_l8_b1_t7.png b/gen/img/img_pl_l8_b1_t7.png index b62e400..924163c 100644 Binary files a/gen/img/img_pl_l8_b1_t7.png and b/gen/img/img_pl_l8_b1_t7.png differ diff --git a/gen/img/img_pl_l8_b2_t1.png b/gen/img/img_pl_l8_b2_t1.png index f961fc1..f3fb049 100644 Binary files a/gen/img/img_pl_l8_b2_t1.png and b/gen/img/img_pl_l8_b2_t1.png differ diff --git a/gen/img/img_pl_l8_b2_t2.png b/gen/img/img_pl_l8_b2_t2.png index 0bad79c..b18378e 100644 Binary files a/gen/img/img_pl_l8_b2_t2.png and b/gen/img/img_pl_l8_b2_t2.png differ diff --git a/gen/img/img_pl_l8_b2_t3.png b/gen/img/img_pl_l8_b2_t3.png index ee4a9ec..9169291 100644 Binary files a/gen/img/img_pl_l8_b2_t3.png and b/gen/img/img_pl_l8_b2_t3.png differ diff --git a/gen/img/img_pl_l8_b2_t4.png b/gen/img/img_pl_l8_b2_t4.png index 1dcffa6..20e832a 100644 Binary files a/gen/img/img_pl_l8_b2_t4.png and b/gen/img/img_pl_l8_b2_t4.png differ diff --git a/gen/img/img_pl_l8_b2_t5.png b/gen/img/img_pl_l8_b2_t5.png index b4014c1..647d1e4 100644 Binary files a/gen/img/img_pl_l8_b2_t5.png and b/gen/img/img_pl_l8_b2_t5.png differ diff --git a/gen/img/img_pl_l8_b3_t1.png b/gen/img/img_pl_l8_b3_t1.png index 1be2345..c6ea812 100644 Binary files a/gen/img/img_pl_l8_b3_t1.png and b/gen/img/img_pl_l8_b3_t1.png differ diff --git a/gen/img/img_pl_l8_b3_t1b.png b/gen/img/img_pl_l8_b3_t1b.png index 24aacab..5950144 100644 Binary files a/gen/img/img_pl_l8_b3_t1b.png and b/gen/img/img_pl_l8_b3_t1b.png differ diff --git a/gen/img/img_pl_l8_b3_t2.png b/gen/img/img_pl_l8_b3_t2.png index 3b5a987..a47eb5c 100644 Binary files a/gen/img/img_pl_l8_b3_t2.png and b/gen/img/img_pl_l8_b3_t2.png differ diff --git a/gen/img/img_pl_l8_b3_t2b.png b/gen/img/img_pl_l8_b3_t2b.png index 9e1f99f..18bc22e 100644 Binary files a/gen/img/img_pl_l8_b3_t2b.png and b/gen/img/img_pl_l8_b3_t2b.png differ diff --git a/gen/img/img_pl_l8_b3_t3.png b/gen/img/img_pl_l8_b3_t3.png index 4c84ec5..1ab9dab 100644 Binary files a/gen/img/img_pl_l8_b3_t3.png and b/gen/img/img_pl_l8_b3_t3.png differ diff --git a/gen/img/img_pl_l8_b3_t3b.png b/gen/img/img_pl_l8_b3_t3b.png index 0f0c93f..9f3a4a2 100644 Binary files a/gen/img/img_pl_l8_b3_t3b.png and b/gen/img/img_pl_l8_b3_t3b.png differ diff --git a/gen/img/img_pl_l8_b3_t4.png b/gen/img/img_pl_l8_b3_t4.png index 083d0ba..a681069 100644 Binary files a/gen/img/img_pl_l8_b3_t4.png and b/gen/img/img_pl_l8_b3_t4.png differ diff --git a/gen/img/img_pl_l8_b3_t4b.png b/gen/img/img_pl_l8_b3_t4b.png index 2b68aaf..f604f0c 100644 Binary files a/gen/img/img_pl_l8_b3_t4b.png and b/gen/img/img_pl_l8_b3_t4b.png differ diff --git a/results.Rmd b/results.Rmd index 1cb7b77..3c78539 100644 --- a/results.Rmd +++ b/results.Rmd @@ -22,6 +22,7 @@ library(RColorBrewer) 1. [Configuration](#configuration) 2. [Results per host](#results-per-host) * [Intel Core i5-4590 + NVIDIA GeForce GT 430](#intel-core-i5-4590--nvidia-geforce-gt-430) + * [Intel Core i5-4590 + NVIDIA GeForce GTX 750 Ti](#intel-core-i5-4590--nvidia-geforce-gtx-750-ti) * [Intel Core i5-3570](#intel-core-i5-3570) * [Intel Core i3-2120](#intel-core-i3-2120) * [Intel Core i3-3120M](#intel-core-i3-3120m) @@ -40,27 +41,28 @@ library(RColorBrewer) ## Configuration -**R software**: [Microsoft R Open](https://mran.microsoft.com/open/). +**R software**: [Microsoft R Open](https://mran.microsoft.com/open/) (3.2.4). **Libraries**: |CPU (single-threaded)|CPU (multi-threaded)|GPU| |---|---|---| -|[Netlib](http://www.netlib.org/) (debian package)|[OpenBLAS](http://www.openblas.net/) (debian package)|[NVIDIA cuBLAS](https://developer.nvidia.com/cublas) (NVBLAS + Intel MKL)| -|[ATLAS](http://math-atlas.sourceforge.net/) (debian package)|[ATLAS](http://math-atlas.sourceforge.net/) (dev branch)| | -| |[GotoBLAS2](https://prs.ism.ac.jp/~nakama/SurviveGotoBLAS2/) (Survive fork)| | -| |[Intel MKL](https://mran.microsoft.com/download/) (part of Microsoft R Open)| | -| |[BLIS](https://github.com/flame/blis)| | +|[Netlib](http://www.netlib.org/) (debian package, blas 1.2.20110419, lapack 3.5.0)|[OpenBLAS](http://www.openblas.net/) (debian package, 0.2.12)|[NVIDIA cuBLAS](https://developer.nvidia.com/cublas) (NVBLAS 6.5 + Intel MKL)| +|[ATLAS](http://math-atlas.sourceforge.net/) (debian package, 3.10.2)|[ATLAS](http://math-atlas.sourceforge.net/) (dev branch, 3.11.38)| | +| |[GotoBLAS2](https://prs.ism.ac.jp/~nakama/SurviveGotoBLAS2/) (Survive fork, 3.141)| | +| |[Intel MKL](https://mran.microsoft.com/download/) (part of RevoMath package, 3.2.4)| | +| |[BLIS](https://github.com/flame/blis) (dev branch, 0.2.0+/17.05.2016)| | **Hosts**: |No.|CPU|GPU| |---|---|---| |1.|[Intel Core i5-4590](http://ark.intel.com/products/80815/Intel-Core-i5-4590-Processor-6M-Cache-up-to-3_70-GHz)|[NVIDIA GeForce GT 430](http://www.geforce.com/hardware/desktop-gpus/geforce-gt-430/specifications)| -|2.|[Intel Core i5-3570](http://ark.intel.com/products/65702/Intel-Core-i5-3570-Processor-6M-Cache-up-to-3_80-GHz)| - | -|3.|[Intel Core i3-2120](http://ark.intel.com/products/53426/Intel-Core-i3-2120-Processor-3M-Cache-3_30-GHz)| - | -|4.|[Intel Core i3-3120M](http://ark.intel.com/products/71465/Intel-Core-i3-3120M-Processor-3M-Cache-2_50-GHz)| - | -|5.|[Intel Core i5-3317U](http://ark.intel.com/products/65707/Intel-Core-i5-3317U-Processor-3M-Cache-up-to-2_60-GHz)|[NVIDIA GeForce GT 630M](http://www.geforce.com/hardware/notebook-gpus/geforce-gt-630m/specifications)| +|2.|[Intel Core i5-4590](http://ark.intel.com/products/80815/Intel-Core-i5-4590-Processor-6M-Cache-up-to-3_70-GHz)|[NVIDIA GeForce GTX 750 Ti](http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-750-ti/specifications)| +|3.|[Intel Core i5-3570](http://ark.intel.com/products/65702/Intel-Core-i5-3570-Processor-6M-Cache-up-to-3_80-GHz)| - | +|4.|[Intel Core i3-2120](http://ark.intel.com/products/53426/Intel-Core-i3-2120-Processor-3M-Cache-3_30-GHz)| - | +|5.|[Intel Core i3-3120M](http://ark.intel.com/products/71465/Intel-Core-i3-3120M-Processor-3M-Cache-2_50-GHz)| - | +|6.|[Intel Core i5-3317U](http://ark.intel.com/products/65707/Intel-Core-i5-3317U-Processor-3M-Cache-up-to-2_60-GHz)|[NVIDIA GeForce GT 630M](http://www.geforce.com/hardware/notebook-gpus/geforce-gt-630m/specifications)| **Benchmarks**: [Urbanek](http://r.research.att.com/benchmarks/R-benchmark-25.R), [Revolution](https://gist.github.com/andrie/24c9672f1ea39af89c66#file-rro-mkl-benchmark-r), [Gcbd](https://cran.r-project.org/web/packages/gcbd/vignettes/gcbd.pdf). @@ -441,15 +443,17 @@ for (lib in LIBRARIES) " runs - lower is better\n\n")) - myColors = c("#5AAC45", "#636363", "#636363", "#E6191A", "#636363") + myColors = c("#5AAC45", "#636363", "#636363", "#E6191A", "#636363", "#636363") if (lib=="cublas") - myColors = c("#E6191A", "#636363")#, "#636363", "#5AAC45", "#636363") + myColors = c("#E6191A", "#5AAC45", "#636363")#, "#636363", "#5AAC45", "#636363") colScale = scale_fill_manual(name = "Color", values = myColors) + data.to.plot = unique(select(data.to.plot, -Host)) + if (benchmark != "gcbd") { - png(image.path, width=600, height=50*nrow(data.to.plot)+ifelse(nrow(data.to.plot)>1, 0, 20)) + png(image.path, width=600, height=50*length(unique(data.to.plot$CPUGPU))+ifelse(nrow(data.to.plot)>1, 0, 20)) print(ggplot(data.to.plot, aes(x=reorder(CPUGPU, -Time), y=Time, fill=CPUGPU)) + theme_classic() + @@ -470,7 +474,7 @@ for (lib in LIBRARIES) geom_text(aes(y=1.2*max(data.to.plot$Time), x=CPUGPU, label=paste0("x", trimws(format(PerfGain, digits=1, nsmall=1)))), hjust=1, size=4) + geom_hline(yintercept = 0, color="grey") + geom_vline(xintercept = 0.4, color="grey") + - annotate("text", x=nrow(data.to.plot)+ifelse(nrow(data.to.plot)>1, 0.55, 0.45), y=1.2*max(data.to.plot$Time), label="Performance gain", hjust=1) + + annotate("text", x=length(unique(data.to.plot$CPUGPU))+ifelse(nrow(data.to.plot)>1, 0.55, 0.45), y=1.2*max(data.to.plot$Time), label="Performance gain", hjust=1) + colScale ) dev.off() @@ -504,7 +508,7 @@ for (lib in LIBRARIES) scale_y_continuous(expand = c(0, 0)) + geom_hline(yintercept = 0, color="grey") + geom_vline(xintercept = 0.4, color="grey") + - scale_shape_manual(values=c(25,24,22,21,23)) + + scale_shape_manual(values=c(25,24,22,21,23,25)) + scale_color_manual(values=rbColors) + scale_fill_manual(values=rbColors) @@ -534,7 +538,7 @@ for (lib in LIBRARIES) breaks=c(100, 200, 400, 800, 1600, 3200, 5000), limits=c(100, 5500)) + scale_y_log10() + - scale_shape_manual(values=c(25,24,22,21,23)) + + scale_shape_manual(values=c(25,24,22,21,23,25)) + geom_hline(yintercept = 0, color="grey") + geom_vline(xintercept = min(data.to.plot$Size), color="grey") + scale_color_manual(values=rbColors) +