September 01, 2015 Re: Matrix API support - start with formats? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Friday, 14 August 2015 at 14:57:19 UTC, Andrei Alexandrescu wrote: > I stumbled upon https://software.intel.com/en-us/node/471374 which gives good detail on Intel's Math Kernel Library's data formats for sparse matrices. > > No doubt other popular linear algebra libraries have similar documentation. I was thinking we could start with adding these layouts to std, along with a few simple primitives (construction, element/slice access, stride etc). Then, people may just use those as they are or link with the linalg libraries for specific computations. > > > Thoughts? > > Andrei One thing that will make D really shine is to implement something like this: https://www.youtube.com/watch?v=hfn0BVOegac Since Blaze [1] is open source all we need to do is to provide D wrappers on their highly optimized kernels. My intuition is that by using D's generative features we may be able implement this with significantly less effort than with C++. Their repository even contains benchmarks which we can use to verify that our wrappers won't incur overhead compared to C++. [1]: https://bitbucket.org/blaze-lib/blaze |
September 03, 2015 Re: Matrix API support - start with formats? | ||||
---|---|---|---|---|
| ||||
Posted in reply to ZombineDev | On Tuesday, 1 September 2015 at 14:00:52 UTC, ZombineDev wrote:
> On Friday, 14 August 2015 at 14:57:19 UTC, Andrei Alexandrescu wrote:
>> I stumbled upon https://software.intel.com/en-us/node/471374 which gives good detail on Intel's Math Kernel Library's data formats for sparse matrices.
>>
>> No doubt other popular linear algebra libraries have similar documentation. I was thinking we could start with adding these layouts to std, along with a few simple primitives (construction, element/slice access, stride etc). Then, people may just use those as they are or link with the linalg libraries for specific computations.
>>
>>
>> Thoughts?
>>
>> Andrei
>
> One thing that will make D really shine is to implement something like this:
> https://www.youtube.com/watch?v=hfn0BVOegac
>
> Since Blaze [1] is open source all we need to do is to provide D wrappers on their highly optimized kernels. My intuition is that by using D's generative features we may be able implement this with significantly less effort than with C++. Their repository even contains benchmarks which we can use to verify that our wrappers won't incur overhead compared to C++.
>
> [1]: https://bitbucket.org/blaze-lib/blaze
I was looking at blaze the other day and wondering just the same. I haven't used it, and don't have a great feeling for what would be involved. Maybe John Colvin does.
|
September 03, 2015 Re: Matrix API support - start with formats? | ||||
---|---|---|---|---|
| ||||
Posted in reply to ZombineDev | On Tuesday, 1 September 2015 at 14:00:52 UTC, ZombineDev wrote:
>
> One thing that will make D really shine is to implement something like this:
> https://www.youtube.com/watch?v=hfn0BVOegac
>
Thanks for posting that. It provides a nuanced discussion of expression templates. The final conclusion is that C++ should be very careful in choosing a linear algebra library for the standard. I think that applies to D just as well.
|
Copyright © 1999-2021 by the D Language Foundation