Displaying 20 results from an estimated 7000 matches similar to: "An update on scalable vectors in LLVM"
2020 Apr 22
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I just wanted to give an update on the progress of this work. This morning I merged a patch to add the new vector types. I have added a FixedVectorType, as proposed below. I also added a ScalableVectorType. I found during my work that it is useful to be able to query isa<ScalableVectorType>(Ty). Additionally, I was concerned that it would become commonplace to take
2020 Mar 09
8
[RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I am helping with the effort to implement scalable vectors in the codebase in order to add support for generating SVE code in the Arm backend. I would like to propose a refactor of the Type class hierarchy in order to eliminate issues related to the misuse of SequentialType::getNumElements(). I would like to introduce a new class FixedVectorType that inherits from
2020 May 05
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Nicolai,
My plan is to remove getNumElements() as soon as possible. Hopefully within the next few weeks. I just made a patch on my machine that marks it deprecated, and it generates a ton of warnings. Given that some build bots build with -Werror, I don't think we can mark it deprecated unless all the usages are first removed.
It occurs to me now that it might be good to mark it
2020 May 21
3
[RFC] Refactor class hierarchy of VectorType in the IR
Hi John,
I’d like to address some points in your message.
> Practically speaking, this is going to break every out-of-tree frontend, backend, or optimization pass that supports SIMD types.
My understanding is that the policy in LLVM development is that we do not let considerations for downstream and out-of-tree codebases affect the pace of development. The C++ API is explicitly unstable.
2017 Jun 01
4
[RFC][SVE] Supporting Scalable Vector Architectures in LLVM IR (take 2)
Hi,
Here's the updated RFC for representing scalable vector types and associated constants in IR. I added a section to address questions that came up on the recent patch review.
-Graham
===================================================
Supporting Scalable Vector Architectures in LLVM IR
===================================================
==========
Background
==========
*ARMv8-A
2019 Dec 03
2
SVE/SVE2 LLVM sync-up calls
Hi all,
Several people have expressed interest in having regular sync-up calls to follow the progress of ARM SVE/SVE2 support in LLVM.
With this effort picking up steam and multiple people contributing patches, regular sync-up calls would provide a platform to coordinate our efforts.
Items to discuss in these sync-up calls would include:
- SVE/SVE2 CodeGen support
- Adding support for C/C++
2017 Jun 07
2
[RFC][SVE] Supporting Scalable Vector Architectures in LLVM IR (take 2)
Hi Renato,
Thanks for taking a look. Answers inline below, let me know if I've missed something out.
-Graham
> On 5 Jun 2017, at 17:55, Renato Golin <renato.golin at linaro.org> wrote:
>
> Hi Graham,
>
> Just making sure some people who voiced concerns are copied + cfe-dev.
>
> On 1 June 2017 at 15:22, Graham Hunter via llvm-dev
> <llvm-dev at
2019 Dec 16
2
SVE/SVE2 LLVM sync-up calls
Thanks to all who attended last week's SVE/SVE2 sync-up meeting!
The next meeting will be on Thursday, January 9th, at 5pm GMT / 9am PST.
I've created the agenda for the next meeting here:
https://docs.google.com/document/d/17GqhBZaADtnDlDL3L4wWqcMd0qvfzB-VEe_ntodgYjA
(If you want to attend, please add your name, email and organisation to the list referenced in the document above so I
2019 May 24
2
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
In the RISC-V V extension, there is no upper limit to the size vector
registers can be in a future CPU. (Formally, the upper limit is at
least 2^31 bytes)
Generic code can enquire the size, dynamically allocate space, and
transparently save and restore the contents of a vector register or
registers.
On Fri, May 24, 2019 at 11:28 AM JinGu Kang via llvm-dev
<llvm-dev at lists.llvm.org>
2019 May 24
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
JinGu:
I’m not Graham, but you might find the following link a good starting point.
https://community.arm.com/developer/tools-software/hpc/b/hpc-blog/posts/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture
The question you ask doesn’t have a short answer. The compiler and the instruction set design work together to allow programs to be compiled without knowing
2020 May 21
5
[RFC] Refactor class hierarchy of VectorType in the IR
John,
> This is not categorically true, no. When we make changes that require large-scale updates for downstream codebases, we do so because there’s a real expected benefit to it. For the most part, we do make some effort to keep existing source interfaces stable.
While I’m at a loss to find a documented policy, I recall this thread
2018 Jul 30
5
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
Hi,
Are there any objections to going ahead with this? If not, we'll try to get the patches reviewed and committed after the 7.0 branch occurs.
-Graham
> On 2 Jul 2018, at 10:53, Graham Hunter <Graham.Hunter at arm.com> wrote:
>
> Hi,
>
> I've updated the RFC slightly based on the discussion within the thread, reposted below. Let me know if I've missed
2019 May 27
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
Hi All,
I have read the links from Joel. It seems one of its main focus is vectorization of loop with vector predicate register. I am not sure we need the scalable vector type for it. Let's see a simple example from the white paper.
1 void example01(int *restrict a, const int *b, const int *c, long N)
2 {
3 long i;
4 for (i = 0; i < N; ++i)
5 a[i] = b[i] + c[i];
6 }
2016 Nov 04
2
[RFC] Supporting ARM's SVE in LLVM
Hi,
We've been working for the last two years on support for ARM's Scalable Vector Extension in LLVM, and we'd like to upstream our work. We've had to make several design decisions without community input, and would like to discuss the major changes we've made. To help with the discussions, I've attached a technical document (also in plain text below) to describe the
2019 Jun 03
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
Hi Graham,
Thanks for your kind explanation.
There was internal discussion about it. If possible, can you let me know the Clang/LLVM CodeGen patches for the vector type on phabricator please? I would like to check what kinds of the restrictions the type causes on Clang/LLVM.
Thanks,
JinGu Kang
________________________________
From: Graham Hunter <Graham.Hunter at arm.com>
Sent: 28 May
2020 Apr 01
2
LLVM SVE/SVE2 Sync-up calls
Hello,
Just bringing to people's attention that we organise a bi-weekly sync-up call to discuss and collaborate on upstream support for scalable vectors and SVE/SVE2 CodeGen support in LLVM.
The meetings are held every other Thursday, with the next meeting tomorrow (April 2nd) at 3pm GMT / 7am PST.
The invite and agenda for tomorrow's meeting (including links to minutes from previous
2018 Jun 05
14
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
Hi,
Now that Sander has committed enough MC support for SVE, here's an updated
RFC for variable length vector support with a set of 14 patches (listed at the end)
to demonstrate code generation for SVE using the extensions proposed in the RFC.
I have some ideas about how to support RISC-V's upcoming extension alongside
SVE; I'll send an email with some additional comments on
2018 Jul 30
7
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
On 07/30/2018 05:34 AM, Chandler Carruth wrote:
> I strongly suspect that there remains widespread concern with the
> direction of this, I know I have them.
>
> I don't think that many of the people who have that concern have had
> time to come back to this RFC and make progress on it, likely because
> of other commitments or simply the amount of churn around SVE related
>
2018 Jul 02
3
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
Hi,
i am the main author of RV, the Region Vectorizer
(github.com/cdl-saarland/rv). I want to share our standpoint as
potential users of the proposed vector-length agnostic IR (RISC-V, ARM SVE).
-- support for `llvm.experimental.vector.reduce.*` intrinsics --
RV relies heavily on predicate reductions (`or` and `and` reduction) to
tame divergent loops and provide a vector-length agnostic
2020 Nov 02
2
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
Hi all,
At the Barcelona Supercomputing Center, we have been working on an
end-to-end vectorizer using scalable vectors for RISC-V Vector extension
in context of the EPI Project
<https://www.european-processor-initiative.eu/accelerator/>. We earlier
shared a demo of our prototype implementation
(https://repo.hca.bsc.es/epic/z/9eYRIF, see below) with the folks
involved with LLVM