b52d47a920
### What changes were proposed in this pull request? Bump to `dev.ludovic.netlib:2.0` which provides JNI-based wrappers for BLAS, ARPACK, and LAPACK. Theseare not taking dependencies on GPL or LGPL libraries, allowing to provide out-of-the-box support for hardware acceleration when a native library is present (this is still up to the end-user to install such library on their system, like OpenBLAS, Intel MKL, and libarpack2). ### Why are the changes needed? Great performance improvement for ML-related workload on vanilla-distributions of Spark. ### Does this PR introduce _any_ user-facing change? Users now take advantage of hardware acceleration as long as a native library is installed (like OpenBLAS, Intel MKL and libarpack2). ### How was this patch tested? Spark test-suite + dev.ludovic.netlib testsuite. #### JDK8: ``` [info] OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.8.0-50-generic [info] Intel(R) Xeon(R) E-2276G CPU 3.80GHz [info] [info] f2jBLAS = dev.ludovic.netlib.blas.F2jBLAS [info] javaBLAS = dev.ludovic.netlib.blas.Java8BLAS [info] nativeBLAS = dev.ludovic.netlib.blas.JNIBLAS [info] [info] daxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 220 226 6 454.9 2.2 1.0X [info] java 221 228 5 451.9 2.2 1.0X [info] native 209 215 5 478.7 2.1 1.1X [info] [info] saxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 121 125 3 823.3 1.2 1.0X [info] java 121 125 3 824.3 1.2 1.0X [info] native 101 105 3 988.4 1.0 1.2X [info] [info] dcopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 212 219 6 470.9 2.1 1.0X [info] java 208 212 4 481.0 2.1 1.0X [info] native 209 215 5 478.5 2.1 1.0X [info] [info] scopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 114 119 3 878.9 1.1 1.0X [info] java 99 105 3 1011.4 1.0 1.2X [info] native 97 103 3 1026.7 1.0 1.2X [info] [info] ddot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 108 111 2 925.9 1.1 1.0X [info] java 71 73 2 1414.9 0.7 1.5X [info] native 54 56 2 1847.0 0.5 2.0X [info] [info] sdot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 96 97 2 1046.8 1.0 1.0X [info] java 47 48 1 2129.8 0.5 2.0X [info] native 29 30 1 3404.7 0.3 3.3X [info] [info] dnrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 139 143 2 718.2 1.4 1.0X [info] java 46 47 1 2171.2 0.5 3.0X [info] native 44 46 2 2261.8 0.4 3.1X [info] [info] snrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 154 157 4 651.0 1.5 1.0X [info] java 40 42 1 2469.3 0.4 3.8X [info] native 26 27 1 3787.6 0.3 5.8X [info] [info] dscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 185 195 8 541.0 1.8 1.0X [info] java 186 196 7 538.5 1.9 1.0X [info] native 177 187 7 564.1 1.8 1.0X [info] [info] sscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 98 102 3 1016.2 1.0 1.0X [info] java 98 102 3 1017.8 1.0 1.0X [info] native 87 91 3 1143.2 0.9 1.1X [info] [info] dgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 68 70 1 1474.7 0.7 1.0X [info] java 51 52 1 1973.0 0.5 1.3X [info] native 30 32 1 3298.8 0.3 2.2X [info] [info] dgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 96 99 2 1037.9 1.0 1.0X [info] java 50 51 1 1999.6 0.5 1.9X [info] native 30 31 1 3368.1 0.3 3.2X [info] [info] sgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 59 61 1 1688.7 0.6 1.0X [info] java 41 42 1 2461.9 0.4 1.5X [info] native 15 16 1 6593.0 0.2 3.9X [info] [info] sgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 90 92 1 1116.2 0.9 1.0X [info] java 39 40 1 2565.8 0.4 2.3X [info] native 15 16 1 6594.2 0.2 5.9X [info] [info] dger: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 192 202 7 520.5 1.9 1.0X [info] java 203 214 7 491.9 2.0 0.9X [info] native 176 187 7 568.8 1.8 1.1X [info] [info] dspmv[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 59 61 1 846.1 1.2 1.0X [info] java 38 39 1 1313.5 0.8 1.6X [info] native 24 27 1 2047.8 0.5 2.4X [info] [info] dspr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 97 101 3 515.4 1.9 1.0X [info] java 97 101 2 515.1 1.9 1.0X [info] native 88 91 3 569.1 1.8 1.1X [info] [info] dsyr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 169 174 3 295.4 3.4 1.0X [info] java 169 174 3 295.4 3.4 1.0X [info] native 160 165 4 312.2 3.2 1.1X [info] [info] dgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 561 577 13 1782.3 0.6 1.0X [info] java 225 231 4 4446.2 0.2 2.5X [info] native 31 32 3 32473.1 0.0 18.2X [info] [info] dgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 570 584 9 1754.8 0.6 1.0X [info] java 224 230 4 4457.3 0.2 2.5X [info] native 31 32 1 32493.4 0.0 18.5X [info] [info] dgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 855 866 6 1169.2 0.9 1.0X [info] java 224 228 3 4466.9 0.2 3.8X [info] native 31 32 1 32395.5 0.0 27.7X [info] [info] dgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 1328 1344 8 752.8 1.3 1.0X [info] java 224 230 4 4458.9 0.2 5.9X [info] native 31 32 1 32201.8 0.0 42.8X [info] [info] sgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 534 541 5 1873.0 0.5 1.0X [info] java 220 224 3 4542.8 0.2 2.4X [info] native 15 16 1 66803.1 0.0 35.7X [info] [info] sgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 544 551 6 1839.6 0.5 1.0X [info] java 220 224 4 4538.2 0.2 2.5X [info] native 15 16 1 65589.9 0.0 35.7X [info] [info] sgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 833 845 21 1201.0 0.8 1.0X [info] java 220 224 3 4548.7 0.2 3.8X [info] native 15 16 1 66603.2 0.0 55.5X [info] [info] sgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 899 907 5 1112.9 0.9 1.0X [info] java 221 224 2 4531.6 0.2 4.1X [info] native 15 16 1 65944.9 0.0 59.3X ``` #### JDK11: ``` [info] OpenJDK 64-Bit Server VM 11.0.11+9-LTS on Linux 5.8.0-50-generic [info] Intel(R) Xeon(R) E-2276G CPU 3.80GHz [info] [info] f2jBLAS = dev.ludovic.netlib.blas.F2jBLAS [info] javaBLAS = dev.ludovic.netlib.blas.Java11BLAS [info] nativeBLAS = dev.ludovic.netlib.blas.JNIBLAS [info] [info] daxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 195 200 3 512.2 2.0 1.0X [info] java 197 202 3 507.0 2.0 1.0X [info] native 184 189 4 543.0 1.8 1.1X [info] [info] saxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 108 112 3 921.8 1.1 1.0X [info] java 101 105 3 989.4 1.0 1.1X [info] native 87 91 3 1147.1 0.9 1.2X [info] [info] dcopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 187 191 3 535.1 1.9 1.0X [info] java 182 188 3 548.8 1.8 1.0X [info] native 178 182 3 562.2 1.8 1.1X [info] [info] scopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 110 114 3 909.3 1.1 1.0X [info] java 86 93 4 1159.3 0.9 1.3X [info] native 86 90 3 1162.4 0.9 1.3X [info] [info] ddot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 106 108 2 943.6 1.1 1.0X [info] java 70 71 2 1426.8 0.7 1.5X [info] native 54 56 2 1835.4 0.5 1.9X [info] [info] sdot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 96 97 1 1047.1 1.0 1.0X [info] java 43 44 1 2331.9 0.4 2.2X [info] native 29 30 1 3392.1 0.3 3.2X [info] [info] dnrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 114 115 2 880.7 1.1 1.0X [info] java 42 43 1 2398.1 0.4 2.7X [info] native 45 46 1 2233.3 0.4 2.5X [info] [info] snrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 140 143 2 714.6 1.4 1.0X [info] java 28 29 1 3531.0 0.3 4.9X [info] native 26 27 1 3820.0 0.3 5.3X [info] [info] dscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 156 166 7 641.3 1.6 1.0X [info] java 158 167 6 633.2 1.6 1.0X [info] native 150 160 7 664.8 1.5 1.0X [info] [info] sscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 85 88 2 1181.7 0.8 1.0X [info] java 85 88 2 1176.0 0.9 1.0X [info] native 75 78 2 1333.2 0.8 1.1X [info] [info] dgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 58 59 1 1731.1 0.6 1.0X [info] java 41 43 1 2415.5 0.4 1.4X [info] native 30 31 1 3293.9 0.3 1.9X [info] [info] dgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 94 96 1 1063.4 0.9 1.0X [info] java 41 42 1 2435.8 0.4 2.3X [info] native 30 30 1 3379.8 0.3 3.2X [info] [info] sgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 44 45 1 2278.9 0.4 1.0X [info] java 37 38 0 2686.8 0.4 1.2X [info] native 15 16 1 6555.4 0.2 2.9X [info] [info] sgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 88 89 1 1142.1 0.9 1.0X [info] java 33 34 1 3010.7 0.3 2.6X [info] native 15 16 1 6553.9 0.2 5.7X [info] [info] dger: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 164 172 4 609.4 1.6 1.0X [info] java 163 172 5 612.6 1.6 1.0X [info] native 150 159 4 667.0 1.5 1.1X [info] [info] dspmv[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 49 50 1 1029.4 1.0 1.0X [info] java 41 42 1 1209.4 0.8 1.2X [info] native 25 27 1 2029.2 0.5 2.0X [info] [info] dspr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 80 85 3 622.2 1.6 1.0X [info] java 80 85 3 622.4 1.6 1.0X [info] native 75 79 3 668.7 1.5 1.1X [info] [info] dsyr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 137 142 3 364.1 2.7 1.0X [info] java 139 142 2 360.4 2.8 1.0X [info] native 131 135 3 380.4 2.6 1.0X [info] [info] dgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 517 525 5 1935.5 0.5 1.0X [info] java 213 216 3 4704.8 0.2 2.4X [info] native 31 31 1 32705.6 0.0 16.9X [info] [info] dgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 589 601 6 1698.6 0.6 1.0X [info] java 213 217 3 4693.3 0.2 2.8X [info] native 31 32 1 32498.9 0.0 19.1X [info] [info] dgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 851 865 6 1175.3 0.9 1.0X [info] java 212 216 3 4717.0 0.2 4.0X [info] native 30 32 1 32903.0 0.0 28.0X [info] [info] dgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 1301 1316 6 768.4 1.3 1.0X [info] java 212 216 2 4717.4 0.2 6.1X [info] native 31 32 1 32606.0 0.0 42.4X [info] [info] sgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 454 460 2 2203.0 0.5 1.0X [info] java 208 212 3 4803.8 0.2 2.2X [info] native 15 16 0 66586.0 0.0 30.2X [info] [info] sgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 529 536 4 1889.7 0.5 1.0X [info] java 208 212 3 4798.6 0.2 2.5X [info] native 15 16 1 66751.4 0.0 35.3X [info] [info] sgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 830 840 5 1205.1 0.8 1.0X [info] java 208 211 2 4814.1 0.2 4.0X [info] native 15 15 1 67676.4 0.0 56.2X [info] [info] sgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 894 907 7 1118.7 0.9 1.0X [info] java 208 211 3 4809.6 0.2 4.3X [info] native 15 16 1 66675.2 0.0 59.6X ``` #### JDK16: ``` [info] OpenJDK 64-Bit Server VM 16+36 on Linux 5.8.0-50-generic [info] Intel(R) Xeon(R) E-2276G CPU 3.80GHz [info] [info] f2jBLAS = dev.ludovic.netlib.blas.F2jBLAS [info] javaBLAS = dev.ludovic.netlib.blas.VectorBLAS [info] nativeBLAS = dev.ludovic.netlib.blas.JNIBLAS [info] [info] daxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 193 199 3 517.5 1.9 1.0X [info] java 181 186 4 553.2 1.8 1.1X [info] native 181 185 5 553.6 1.8 1.1X [info] [info] saxpy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 108 112 2 925.1 1.1 1.0X [info] java 88 91 3 1138.6 0.9 1.2X [info] native 87 91 3 1144.2 0.9 1.2X [info] [info] dcopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 184 189 3 542.5 1.8 1.0X [info] java 181 185 3 552.8 1.8 1.0X [info] native 179 183 2 558.0 1.8 1.0X [info] [info] scopy: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 97 101 3 1031.6 1.0 1.0X [info] java 86 90 2 1163.7 0.9 1.1X [info] native 85 88 2 1182.9 0.8 1.1X [info] [info] ddot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 107 109 2 932.4 1.1 1.0X [info] java 54 56 2 1846.7 0.5 2.0X [info] native 54 56 2 1846.7 0.5 2.0X [info] [info] sdot: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 96 97 1 1043.6 1.0 1.0X [info] java 29 30 1 3439.3 0.3 3.3X [info] native 29 30 1 3423.9 0.3 3.3X [info] [info] dnrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 121 123 2 829.8 1.2 1.0X [info] java 32 32 1 3171.3 0.3 3.8X [info] native 45 46 1 2246.2 0.4 2.7X [info] [info] snrm2: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 142 144 2 705.9 1.4 1.0X [info] java 15 16 1 6585.8 0.2 9.3X [info] native 26 27 1 3839.5 0.3 5.4X [info] [info] dscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 157 165 5 635.6 1.6 1.0X [info] java 151 159 5 664.0 1.5 1.0X [info] native 151 160 5 663.6 1.5 1.0X [info] [info] sscal: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 85 89 2 1172.3 0.9 1.0X [info] java 75 79 3 1337.3 0.7 1.1X [info] native 75 79 2 1335.5 0.7 1.1X [info] [info] dgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 58 59 1 1731.5 0.6 1.0X [info] java 28 29 1 3544.2 0.3 2.0X [info] native 30 31 1 3306.2 0.3 1.9X [info] [info] dgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 90 92 1 1108.3 0.9 1.0X [info] java 28 28 1 3622.5 0.3 3.3X [info] native 30 31 1 3381.3 0.3 3.1X [info] [info] sgemv[N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 44 45 1 2284.7 0.4 1.0X [info] java 14 15 1 7034.0 0.1 3.1X [info] native 15 16 1 6643.7 0.2 2.9X [info] [info] sgemv[T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 85 86 1 1177.4 0.8 1.0X [info] java 15 15 1 6886.1 0.1 5.8X [info] native 15 16 1 6560.1 0.2 5.6X [info] [info] dger: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 164 173 6 608.1 1.6 1.0X [info] java 148 157 5 675.2 1.5 1.1X [info] native 152 160 5 659.9 1.5 1.1X [info] [info] dspmv[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 61 63 1 815.4 1.2 1.0X [info] java 16 17 1 3104.3 0.3 3.8X [info] native 24 27 1 2071.9 0.5 2.5X [info] [info] dspr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 81 85 2 616.4 1.6 1.0X [info] java 81 85 2 614.7 1.6 1.0X [info] native 75 78 2 669.5 1.5 1.1X [info] [info] dsyr[U]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 138 141 3 362.7 2.8 1.0X [info] java 137 140 2 365.3 2.7 1.0X [info] native 131 134 2 382.9 2.6 1.1X [info] [info] dgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 525 544 8 1906.2 0.5 1.0X [info] java 61 68 3 16358.1 0.1 8.6X [info] native 31 32 1 32623.7 0.0 17.1X [info] [info] dgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 580 598 12 1724.5 0.6 1.0X [info] java 61 68 4 16302.5 0.1 9.5X [info] native 30 32 1 32962.8 0.0 19.1X [info] [info] dgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 829 838 4 1206.2 0.8 1.0X [info] java 61 69 3 16339.7 0.1 13.5X [info] native 30 31 1 33231.9 0.0 27.6X [info] [info] dgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 1352 1363 5 739.6 1.4 1.0X [info] java 61 69 3 16347.0 0.1 22.1X [info] native 31 32 1 32740.3 0.0 44.3X [info] [info] sgemm[N,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 482 493 7 2073.1 0.5 1.0X [info] java 35 38 2 28315.3 0.0 13.7X [info] native 15 15 1 67579.7 0.0 32.6X [info] [info] sgemm[N,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 472 482 4 2119.0 0.5 1.0X [info] java 36 38 2 28138.1 0.0 13.3X [info] native 15 16 1 66616.5 0.0 31.4X [info] [info] sgemm[T,N]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 823 830 5 1215.2 0.8 1.0X [info] java 35 38 2 28681.4 0.0 23.6X [info] native 15 15 1 67908.4 0.0 55.9X [info] [info] sgemm[T,T]: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative [info] ----------------------------------------------------------------------------------------------- [info] f2j 896 908 7 1115.8 0.9 1.0X [info] java 35 38 2 28402.0 0.0 25.5X [info] native 15 16 0 66691.2 0.0 59.8X ``` TODO: - [x] update documentation in `docs/` and `docs/ml-linalg-guide.md` refering `com.github.fommil.netlib` - [ ] merge https://github.com/luhenry/netlib/pull/1 with all feedback from this PR + remove references to snapshot repositories in `pom.xml` and `project/SparkBuild.scala`. Closes #32415 from luhenry/master. Authored-by: Ludovic Henry <git@ludovic.dev> Signed-off-by: Sean Owen <srowen@gmail.com>
213 lines
9.9 KiB
Groff
213 lines
9.9 KiB
Groff
HikariCP/2.5.1//HikariCP-2.5.1.jar
|
|
JLargeArrays/1.5//JLargeArrays-1.5.jar
|
|
JTransforms/3.1//JTransforms-3.1.jar
|
|
RoaringBitmap/0.9.0//RoaringBitmap-0.9.0.jar
|
|
ST4/4.0.4//ST4-4.0.4.jar
|
|
activation/1.1.1//activation-1.1.1.jar
|
|
aircompressor/0.16//aircompressor-0.16.jar
|
|
algebra_2.12/2.0.0-M2//algebra_2.12-2.0.0-M2.jar
|
|
annotations/17.0.0//annotations-17.0.0.jar
|
|
antlr-runtime/3.5.2//antlr-runtime-3.5.2.jar
|
|
antlr4-runtime/4.8-1//antlr4-runtime-4.8-1.jar
|
|
aopalliance-repackaged/2.6.1//aopalliance-repackaged-2.6.1.jar
|
|
arpack/2.2.0//arpack-2.2.0.jar
|
|
arpack_combined_all/0.1//arpack_combined_all-0.1.jar
|
|
arrow-format/2.0.0//arrow-format-2.0.0.jar
|
|
arrow-memory-core/2.0.0//arrow-memory-core-2.0.0.jar
|
|
arrow-memory-netty/2.0.0//arrow-memory-netty-2.0.0.jar
|
|
arrow-vector/2.0.0//arrow-vector-2.0.0.jar
|
|
audience-annotations/0.5.0//audience-annotations-0.5.0.jar
|
|
automaton/1.11-8//automaton-1.11-8.jar
|
|
avro-ipc/1.10.2//avro-ipc-1.10.2.jar
|
|
avro-mapred/1.10.2//avro-mapred-1.10.2.jar
|
|
avro/1.10.2//avro-1.10.2.jar
|
|
blas/2.2.0//blas-2.2.0.jar
|
|
bonecp/0.8.0.RELEASE//bonecp-0.8.0.RELEASE.jar
|
|
breeze-macros_2.12/1.0//breeze-macros_2.12-1.0.jar
|
|
breeze_2.12/1.0//breeze_2.12-1.0.jar
|
|
cats-kernel_2.12/2.0.0-M4//cats-kernel_2.12-2.0.0-M4.jar
|
|
chill-java/0.9.5//chill-java-0.9.5.jar
|
|
chill_2.12/0.9.5//chill_2.12-0.9.5.jar
|
|
commons-cli/1.2//commons-cli-1.2.jar
|
|
commons-codec/1.15//commons-codec-1.15.jar
|
|
commons-collections/3.2.2//commons-collections-3.2.2.jar
|
|
commons-compiler/3.1.4//commons-compiler-3.1.4.jar
|
|
commons-compress/1.20//commons-compress-1.20.jar
|
|
commons-crypto/1.1.0//commons-crypto-1.1.0.jar
|
|
commons-dbcp/1.4//commons-dbcp-1.4.jar
|
|
commons-httpclient/3.1//commons-httpclient-3.1.jar
|
|
commons-io/2.8.0//commons-io-2.8.0.jar
|
|
commons-lang/2.6//commons-lang-2.6.jar
|
|
commons-lang3/3.12.0//commons-lang3-3.12.0.jar
|
|
commons-logging/1.1.3//commons-logging-1.1.3.jar
|
|
commons-math3/3.4.1//commons-math3-3.4.1.jar
|
|
commons-net/3.1//commons-net-3.1.jar
|
|
commons-pool/1.5.4//commons-pool-1.5.4.jar
|
|
commons-text/1.6//commons-text-1.6.jar
|
|
compress-lzf/1.0.3//compress-lzf-1.0.3.jar
|
|
core/1.1.2//core-1.1.2.jar
|
|
curator-client/2.13.0//curator-client-2.13.0.jar
|
|
curator-framework/2.13.0//curator-framework-2.13.0.jar
|
|
curator-recipes/2.13.0//curator-recipes-2.13.0.jar
|
|
datanucleus-api-jdo/4.2.4//datanucleus-api-jdo-4.2.4.jar
|
|
datanucleus-core/4.1.17//datanucleus-core-4.1.17.jar
|
|
datanucleus-rdbms/4.1.19//datanucleus-rdbms-4.1.19.jar
|
|
derby/10.14.2.0//derby-10.14.2.0.jar
|
|
dropwizard-metrics-hadoop-metrics2-reporter/0.1.2//dropwizard-metrics-hadoop-metrics2-reporter-0.1.2.jar
|
|
flatbuffers-java/1.9.0//flatbuffers-java-1.9.0.jar
|
|
generex/1.0.2//generex-1.0.2.jar
|
|
gson/2.2.4//gson-2.2.4.jar
|
|
guava/14.0.1//guava-14.0.1.jar
|
|
hadoop-client-api/3.2.2//hadoop-client-api-3.2.2.jar
|
|
hadoop-client-runtime/3.2.2//hadoop-client-runtime-3.2.2.jar
|
|
hadoop-yarn-server-web-proxy/3.2.2//hadoop-yarn-server-web-proxy-3.2.2.jar
|
|
hive-beeline/2.3.8//hive-beeline-2.3.8.jar
|
|
hive-cli/2.3.8//hive-cli-2.3.8.jar
|
|
hive-common/2.3.8//hive-common-2.3.8.jar
|
|
hive-exec/2.3.8/core/hive-exec-2.3.8-core.jar
|
|
hive-jdbc/2.3.8//hive-jdbc-2.3.8.jar
|
|
hive-llap-common/2.3.8//hive-llap-common-2.3.8.jar
|
|
hive-metastore/2.3.8//hive-metastore-2.3.8.jar
|
|
hive-serde/2.3.8//hive-serde-2.3.8.jar
|
|
hive-service-rpc/3.1.2//hive-service-rpc-3.1.2.jar
|
|
hive-shims-0.23/2.3.8//hive-shims-0.23-2.3.8.jar
|
|
hive-shims-common/2.3.8//hive-shims-common-2.3.8.jar
|
|
hive-shims-scheduler/2.3.8//hive-shims-scheduler-2.3.8.jar
|
|
hive-shims/2.3.8//hive-shims-2.3.8.jar
|
|
hive-storage-api/2.7.2//hive-storage-api-2.7.2.jar
|
|
hive-vector-code-gen/2.3.8//hive-vector-code-gen-2.3.8.jar
|
|
hk2-api/2.6.1//hk2-api-2.6.1.jar
|
|
hk2-locator/2.6.1//hk2-locator-2.6.1.jar
|
|
hk2-utils/2.6.1//hk2-utils-2.6.1.jar
|
|
htrace-core4/4.1.0-incubating//htrace-core4-4.1.0-incubating.jar
|
|
httpclient/4.5.13//httpclient-4.5.13.jar
|
|
httpcore/4.4.12//httpcore-4.4.12.jar
|
|
istack-commons-runtime/3.0.8//istack-commons-runtime-3.0.8.jar
|
|
ivy/2.4.0//ivy-2.4.0.jar
|
|
jackson-annotations/2.12.2//jackson-annotations-2.12.2.jar
|
|
jackson-core-asl/1.9.13//jackson-core-asl-1.9.13.jar
|
|
jackson-core/2.12.2//jackson-core-2.12.2.jar
|
|
jackson-databind/2.12.2//jackson-databind-2.12.2.jar
|
|
jackson-dataformat-yaml/2.12.2//jackson-dataformat-yaml-2.12.2.jar
|
|
jackson-datatype-jsr310/2.11.2//jackson-datatype-jsr310-2.11.2.jar
|
|
jackson-mapper-asl/1.9.13//jackson-mapper-asl-1.9.13.jar
|
|
jackson-module-scala_2.12/2.12.2//jackson-module-scala_2.12-2.12.2.jar
|
|
jakarta.annotation-api/1.3.5//jakarta.annotation-api-1.3.5.jar
|
|
jakarta.inject/2.6.1//jakarta.inject-2.6.1.jar
|
|
jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar
|
|
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
|
|
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
|
|
jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar
|
|
janino/3.1.4//janino-3.1.4.jar
|
|
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
|
|
javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar
|
|
javolution/5.5.1//javolution-5.5.1.jar
|
|
jaxb-api/2.2.11//jaxb-api-2.2.11.jar
|
|
jaxb-runtime/2.3.2//jaxb-runtime-2.3.2.jar
|
|
jcl-over-slf4j/1.7.30//jcl-over-slf4j-1.7.30.jar
|
|
jdo-api/3.0.1//jdo-api-3.0.1.jar
|
|
jersey-client/2.34//jersey-client-2.34.jar
|
|
jersey-common/2.34//jersey-common-2.34.jar
|
|
jersey-container-servlet-core/2.34//jersey-container-servlet-core-2.34.jar
|
|
jersey-container-servlet/2.34//jersey-container-servlet-2.34.jar
|
|
jersey-hk2/2.34//jersey-hk2-2.34.jar
|
|
jersey-server/2.34//jersey-server-2.34.jar
|
|
jline/2.14.6//jline-2.14.6.jar
|
|
joda-time/2.10.5//joda-time-2.10.5.jar
|
|
jodd-core/3.5.2//jodd-core-3.5.2.jar
|
|
jpam/1.1//jpam-1.1.jar
|
|
json/1.8//json-1.8.jar
|
|
json4s-ast_2.12/3.7.0-M5//json4s-ast_2.12-3.7.0-M5.jar
|
|
json4s-core_2.12/3.7.0-M5//json4s-core_2.12-3.7.0-M5.jar
|
|
json4s-jackson_2.12/3.7.0-M5//json4s-jackson_2.12-3.7.0-M5.jar
|
|
json4s-scalap_2.12/3.7.0-M5//json4s-scalap_2.12-3.7.0-M5.jar
|
|
jsr305/3.0.0//jsr305-3.0.0.jar
|
|
jta/1.1//jta-1.1.jar
|
|
jul-to-slf4j/1.7.30//jul-to-slf4j-1.7.30.jar
|
|
kryo-shaded/4.0.2//kryo-shaded-4.0.2.jar
|
|
kubernetes-client/5.3.1//kubernetes-client-5.3.1.jar
|
|
kubernetes-model-admissionregistration/5.3.1//kubernetes-model-admissionregistration-5.3.1.jar
|
|
kubernetes-model-apiextensions/5.3.1//kubernetes-model-apiextensions-5.3.1.jar
|
|
kubernetes-model-apps/5.3.1//kubernetes-model-apps-5.3.1.jar
|
|
kubernetes-model-autoscaling/5.3.1//kubernetes-model-autoscaling-5.3.1.jar
|
|
kubernetes-model-batch/5.3.1//kubernetes-model-batch-5.3.1.jar
|
|
kubernetes-model-certificates/5.3.1//kubernetes-model-certificates-5.3.1.jar
|
|
kubernetes-model-common/5.3.1//kubernetes-model-common-5.3.1.jar
|
|
kubernetes-model-coordination/5.3.1//kubernetes-model-coordination-5.3.1.jar
|
|
kubernetes-model-core/5.3.1//kubernetes-model-core-5.3.1.jar
|
|
kubernetes-model-discovery/5.3.1//kubernetes-model-discovery-5.3.1.jar
|
|
kubernetes-model-events/5.3.1//kubernetes-model-events-5.3.1.jar
|
|
kubernetes-model-extensions/5.3.1//kubernetes-model-extensions-5.3.1.jar
|
|
kubernetes-model-metrics/5.3.1//kubernetes-model-metrics-5.3.1.jar
|
|
kubernetes-model-networking/5.3.1//kubernetes-model-networking-5.3.1.jar
|
|
kubernetes-model-node/5.3.1//kubernetes-model-node-5.3.1.jar
|
|
kubernetes-model-policy/5.3.1//kubernetes-model-policy-5.3.1.jar
|
|
kubernetes-model-rbac/5.3.1//kubernetes-model-rbac-5.3.1.jar
|
|
kubernetes-model-scheduling/5.3.1//kubernetes-model-scheduling-5.3.1.jar
|
|
kubernetes-model-storageclass/5.3.1//kubernetes-model-storageclass-5.3.1.jar
|
|
lapack/2.2.0//lapack-2.2.0.jar
|
|
leveldbjni-all/1.8//leveldbjni-all-1.8.jar
|
|
libfb303/0.9.3//libfb303-0.9.3.jar
|
|
libthrift/0.12.0//libthrift-0.12.0.jar
|
|
log4j/1.2.17//log4j-1.2.17.jar
|
|
logging-interceptor/3.12.12//logging-interceptor-3.12.12.jar
|
|
lz4-java/1.7.1//lz4-java-1.7.1.jar
|
|
machinist_2.12/0.6.8//machinist_2.12-0.6.8.jar
|
|
macro-compat_2.12/1.1.1//macro-compat_2.12-1.1.1.jar
|
|
mesos/1.4.0/shaded-protobuf/mesos-1.4.0-shaded-protobuf.jar
|
|
metrics-core/4.1.1//metrics-core-4.1.1.jar
|
|
metrics-graphite/4.1.1//metrics-graphite-4.1.1.jar
|
|
metrics-jmx/4.1.1//metrics-jmx-4.1.1.jar
|
|
metrics-json/4.1.1//metrics-json-4.1.1.jar
|
|
metrics-jvm/4.1.1//metrics-jvm-4.1.1.jar
|
|
minlog/1.3.0//minlog-1.3.0.jar
|
|
netty-all/4.1.63.Final//netty-all-4.1.63.Final.jar
|
|
objenesis/2.6//objenesis-2.6.jar
|
|
okhttp/3.12.12//okhttp-3.12.12.jar
|
|
okio/1.14.0//okio-1.14.0.jar
|
|
opencsv/2.3//opencsv-2.3.jar
|
|
orc-core/1.6.7//orc-core-1.6.7.jar
|
|
orc-mapreduce/1.6.7//orc-mapreduce-1.6.7.jar
|
|
orc-shims/1.6.7//orc-shims-1.6.7.jar
|
|
oro/2.0.8//oro-2.0.8.jar
|
|
osgi-resource-locator/1.0.3//osgi-resource-locator-1.0.3.jar
|
|
paranamer/2.8//paranamer-2.8.jar
|
|
parquet-column/1.12.0//parquet-column-1.12.0.jar
|
|
parquet-common/1.12.0//parquet-common-1.12.0.jar
|
|
parquet-encoding/1.12.0//parquet-encoding-1.12.0.jar
|
|
parquet-format-structures/1.12.0//parquet-format-structures-1.12.0.jar
|
|
parquet-hadoop/1.12.0//parquet-hadoop-1.12.0.jar
|
|
parquet-jackson/1.12.0//parquet-jackson-1.12.0.jar
|
|
protobuf-java/2.5.0//protobuf-java-2.5.0.jar
|
|
py4j/0.10.9.2//py4j-0.10.9.2.jar
|
|
pyrolite/4.30//pyrolite-4.30.jar
|
|
scala-collection-compat_2.12/2.1.1//scala-collection-compat_2.12-2.1.1.jar
|
|
scala-compiler/2.12.10//scala-compiler-2.12.10.jar
|
|
scala-library/2.12.10//scala-library-2.12.10.jar
|
|
scala-parser-combinators_2.12/1.1.2//scala-parser-combinators_2.12-1.1.2.jar
|
|
scala-reflect/2.12.10//scala-reflect-2.12.10.jar
|
|
scala-xml_2.12/1.2.0//scala-xml_2.12-1.2.0.jar
|
|
shapeless_2.12/2.3.3//shapeless_2.12-2.3.3.jar
|
|
shims/0.9.0//shims-0.9.0.jar
|
|
slf4j-api/1.7.30//slf4j-api-1.7.30.jar
|
|
slf4j-log4j12/1.7.30//slf4j-log4j12-1.7.30.jar
|
|
snakeyaml/1.27//snakeyaml-1.27.jar
|
|
snappy-java/1.1.8.4//snappy-java-1.1.8.4.jar
|
|
spire-macros_2.12/0.17.0-M1//spire-macros_2.12-0.17.0-M1.jar
|
|
spire-platform_2.12/0.17.0-M1//spire-platform_2.12-0.17.0-M1.jar
|
|
spire-util_2.12/0.17.0-M1//spire-util_2.12-0.17.0-M1.jar
|
|
spire_2.12/0.17.0-M1//spire_2.12-0.17.0-M1.jar
|
|
stax-api/1.0.1//stax-api-1.0.1.jar
|
|
stream/2.9.6//stream-2.9.6.jar
|
|
super-csv/2.2.0//super-csv-2.2.0.jar
|
|
threeten-extra/1.5.0//threeten-extra-1.5.0.jar
|
|
transaction-api/1.1//transaction-api-1.1.jar
|
|
univocity-parsers/2.9.1//univocity-parsers-2.9.1.jar
|
|
velocity/1.5//velocity-1.5.jar
|
|
xbean-asm7-shaded/4.15//xbean-asm7-shaded-4.15.jar
|
|
xz/1.8//xz-1.8.jar
|
|
zjsonpatch/0.3.0//zjsonpatch-0.3.0.jar
|
|
zookeeper-jute/3.6.2//zookeeper-jute-3.6.2.jar
|
|
zookeeper/3.6.2//zookeeper-3.6.2.jar
|
|
zstd-jni/1.4.9-1//zstd-jni-1.4.9-1.jar
|