September 24, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | On Saturday, 24 September 2016 at 17:42:10 UTC, Ilya Yaroshenko wrote:
> On Saturday, 24 September 2016 at 16:55:04 UTC, Martin Nowak wrote:
>> On Saturday, 24 September 2016 at 13:18:45 UTC, Ilya Yaroshenko wrote:
>>> Thank you. Lets wait until Martin submit benchmark results too https://forum.dlang.org/post/mkmjxwilpvsggobakhke@forum.dlang.org
>>
>> Working on it in an hour, with such a strong headline we should avoid mistakes.
>
> Cool! Eigen data was added. Netlib cblas (not blas) required to link Eigen library (Eigen -> Fortran BLAS -> Netlib CBLAS -> D code).
>
> For Eigen:
>
> mkdir build_dir
>
> cd build_dir
>
> cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN_TEST_AVX=ON -DEIGEN_TEST_FMA=ON build_dir
>
> make blas
Edit:
cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN_TEST_AVX=ON -DEIGEN_TEST_FMA=ON ..
|
September 24, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On Saturday, 24 September 2016 at 16:55:04 UTC, Martin Nowak wrote: > On Saturday, 24 September 2016 at 13:18:45 UTC, Ilya Yaroshenko wrote: >> Thank you. Lets wait until Martin submit benchmark results too https://forum.dlang.org/post/mkmjxwilpvsggobakhke@forum.dlang.org > > Working on it in an hour, with such a strong headline we should avoid mistakes. Number somewhat confirmed w/ a Skylake Core i7-6700 and DDR4 RAM, slight advantage for Intel. For Intel MKL 2017.0.098 ``` m=n=k,GLAS(thread_count=1),OpenBLAS(thread_count=?) 10,20,20 20,32,40 30,38.5714,60 40,64,80 50,59.5238,73.5294 60,69.6774,65.4545 70,63.5185,72.2105 80,84.6281,82.5806 90,74.0102,81 100,85.8369,81.6327 200,98.8264,98.401 300,102.079,95.7277 500,108.15,110.727 600,110.334,112.301 700,109.637,112.022 800,110.13,111.309 900,110.491,110.983 1000,109.634,111.374 1200,108.937,111.677 1400,109.837,111.249 1600,108.661,112.19 1800,109.626,112.124 2000,109.748,111.693 ``` And OpenBLAS 0.2.18 (openblas-0.2.18-5.fc24.x86_64) ``` m=n=k,GLAS(thread_count=1),OpenBLAS(thread_count=?) 10,20,10 20,32,20 30,36,24.5455 40,64,37.6471 50,58.1395,40.3226 60,69.6774,46.9565 70,63.5185,45.1316 80,84.6281,58.5143 90,74.7692,53.6029 100,85.8369,62.3053 200,99.3789,80.8489 300,103.211,89.478 500,108.169,98.5416 600,110.367,101.678 700,109.49,101.634 800,110.014,100.123 900,110.266,101.126 1000,109.964,100.336 1200,109.113,101.378 1400,110.003,101.907 1600,108.596,101.66 1800,109.734,102.706 2000,109.742,103.167 ``` |
September 24, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | On Friday, 23 September 2016 at 13:25:30 UTC, Ilya Yaroshenko wrote:
> Mir is LLVM-accelerated Generic Numerical Library for Science and Machine Learning.
>
> Benchmark:
> http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html
Still time for a few edits of that post?
Please emphasize the equally impressive comparison of the code necessary for the matrix multiplication.
glas.gemm(alpha, a, b, beta, c);
vs.
cblas.gemm(
cblas.Order.RowMajor,
cblas.Transpose.NoTrans,
cblas.Transpose.NoTrans,
cast(cblas.blasint) m,
cast(cblas.blasint) n,
cast(cblas.blasint) k,
& alpha,
a.ptr,
cast(cblas.blasint) a.stride,
b.ptr,
cast(cblas.blasint) b.stride,
& beta,
d.ptr,
cast(cblas.blasint) d.stride);
|
September 24, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Nowak | On 09/24/2016 04:37 PM, Martin Nowak wrote:
> On Friday, 23 September 2016 at 13:25:30 UTC, Ilya Yaroshenko wrote:
>> Mir is LLVM-accelerated Generic Numerical Library for Science and
>> Machine Learning.
>>
>> Benchmark:
>> http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html
>>
>
> Still time for a few edits of that post?
>
> Please emphasize the equally impressive comparison of the code necessary
> for the matrix multiplication.
>
> glas.gemm(alpha, a, b, beta, c);
>
> vs.
>
> cblas.gemm(
> cblas.Order.RowMajor,
> cblas.Transpose.NoTrans,
> cblas.Transpose.NoTrans,
> cast(cblas.blasint) m,
> cast(cblas.blasint) n,
> cast(cblas.blasint) k,
> & alpha,
> a.ptr,
> cast(cblas.blasint) a.stride,
> b.ptr,
> cast(cblas.blasint) b.stride,
> & beta,
> d.ptr,
> cast(cblas.blasint) d.stride);
Yes, this is important.
Also, I'm not sure whether the title of this thread is intended to be the title of the blog. In that case, "Numerical age" -> "Numeric age" (which btw sounds pretty cool).
Andrei
|
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Saturday, 24 September 2016 at 20:53:54 UTC, Andrei Alexandrescu wrote: > On 09/24/2016 04:37 PM, Martin Nowak wrote: >> [...] > > Yes, this is important. Added > Also, I'm not sure whether the title of this thread is intended to be the title of the blog. In that case, "Numerical age" -> "Numeric age" (which btw sounds pretty cool). > Changed |
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Saturday, 24 September 2016 at 20:53:54 UTC, Andrei Alexandrescu wrote: > On 09/24/2016 04:37 PM, Martin Nowak wrote: >> [...] > > Yes, this is important. Added > Also, I'm not sure whether the title of this thread is intended to be the title of the blog. In that case, "Numerical age" -> "Numeric age" (which btw sounds pretty cool). > Changed |
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Saturday, 24 September 2016 at 13:13:47 UTC, Mike Parker wrote:
> On Saturday, 24 September 2016 at 12:59:33 UTC, Andrei Alexandrescu wrote:
>> On 9/23/16 9:28 AM, Ilya Yaroshenko wrote:
>>> Could someone with big reddit rating please post the link there? (maybe
>>> Andrei?)
>>
>> I will; better yet let Mike do it (cc'd). Don't forget: 9 AM New York Time is the optimum. -- Andrei
>
> Roger that.
Mike, please use for Monday the link to blog post instead of the forum post.
Thank you
|
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | On Friday, 23 September 2016 at 13:25:30 UTC, Ilya Yaroshenko wrote:
> Mir is LLVM-accelerated Generic Numerical Library for Science and Machine Learning.
>
> Benchmark:
> http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html
>
> Mir v0.18.0 release notes:
> https://github.com/libmir/mir/releases/tag/v0.18.0
> The release includes Mir's D Foundation GSoC project.
>
> Do not forget to star the project:
> https://github.com/libmir/mir
>
> Best regards,
> Ilya
Typo in the title: `than` must be used for comparisons; `then` is for temporal/causal consequence.
|
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lodovico Giaretta | On Sunday, 25 September 2016 at 12:11:53 UTC, Lodovico Giaretta wrote:
> On Friday, 23 September 2016 at 13:25:30 UTC, Ilya Yaroshenko wrote:
>> Mir is LLVM-accelerated Generic Numerical Library for Science and Machine Learning.
>>
>> Benchmark:
>> http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html
>>
>> Mir v0.18.0 release notes:
>> https://github.com/libmir/mir/releases/tag/v0.18.0
>> The release includes Mir's D Foundation GSoC project.
>>
>> Do not forget to star the project:
>> https://github.com/libmir/mir
>>
>> Best regards,
>> Ilya
>
> Typo in the title: `than` must be used for comparisons; `then` is for temporal/causal consequence.
Same error twice in the conclusion.
|
September 25, 2016 Re: Numerical age for D: Mir v0.18.0 is faster then OpenBLAS | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lodovico Giaretta | On Sunday, 25 September 2016 at 12:11:53 UTC, Lodovico Giaretta wrote:
> On Friday, 23 September 2016 at 13:25:30 UTC, Ilya Yaroshenko wrote:
>> Mir is LLVM-accelerated Generic Numerical Library for Science and Machine Learning.
>>
>> Benchmark:
>> http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas-gemm-benchmark.html
>>
>> Mir v0.18.0 release notes:
>> https://github.com/libmir/mir/releases/tag/v0.18.0
>> The release includes Mir's D Foundation GSoC project.
>>
>> Do not forget to star the project:
>> https://github.com/libmir/mir
>>
>> Best regards,
>> Ilya
>
> Typo in the title: `than` must be used for comparisons; `then` is for temporal/causal consequence.
Thanks!
|
Copyright © 1999-2021 by the D Language Foundation