[cfe-dev] RFC: First-class Matrix type
Adam Nemet via cfe-dev
cfe-dev at lists.llvm.org
Thu Oct 11 15:12:26 PDT 2018
> On Oct 11, 2018, at 7:56 AM, David Greene <dag at cray.com> wrote:
> Adam Nemet via cfe-dev <cfe-dev at lists.llvm.org> writes:
>> %0 = load <4 x 4 x float>, <4 x 4 x float>* %a, align 16
>> %1 = load <4 x 4 x float>, <4 x 4 x float>* %b, align 16
>> %2 = call <4 x 4 x float>
>> @llvm.matrix.multiply.m4_4f32.m4_4f32.m4_4f32(<4 x 4 x float> %0,
>> <4 x 4 x float> %1)
>> store <4 x 4 x float> %2, <4 x 4 x float>* %c, align 16
> This sounds very interesting. Would it make sense to later expand the
> idea to allow an arbitrary number of dimensions? Maybe that doesn't
> make sense if we're restricted to statically-known dimensions.
Yes, that matches my current feeling too.
> How would this relate to scalable vectors?
Scalable vectors would be a possible of lowering of the matrix type. I *believe* you'd need go generate loops or at least some conditional code at run time due to the unknown scale factor.
> Most of the time matrix dimensions are not known statically. Would <n x m x float> be possible?
No, we only support statically-known dimensions.
> Do you have a prototype of this?
Yes. I can make it available it there is interest.
More information about the cfe-dev