search for: vectorize

Displaying 20 results from an estimated 27812 matches for "vectorize".

Did you mean: vectorizer
2018 Jul 10
9
[PATCH 0/7] PowerPC64 performance improvements
The following series adds initial vector support for PowerPC64. On POWER9, flac --best is about 3.3x faster. Amitay Isaacs (2): Add m4 macro to check for C __attribute__ features Check if compiler supports target attribute on ppc64 Anton Blanchard (5): configure.ac: Remove SPE detection code configure.ac: Add VSX enable/disable configure.ac: Fix FLAC__CPU_PPC on little endian, and add
2018 Apr 11
5
RFC: Supporting the RISC-V vector extension in LLVM
...[4] "A Case for MVPs: Mixed-Precision Vector Processors", Albert Ou, Quan Nguyen, Yunsup Lee, Krste Asanović, http://hwacha.org/papers/hwacha-mvp-prism2014.pdf ## Producing vector code It is intended that vector code is primarily produced via loop vectorization and other IR-level auto-vectorizers (e.g., the region vectorizer), not written by hand. Supporting loop vectorization is of highest priority. The groundwork for loop vectorization should be useful for other kinds of automatic vectorization as well, but loop vectorization will be implemented first. It's not required or expected...
2008 May 14
6
PWGL in wine, problems
Hello, I'm new on this list. First of all, thank you to all the developers of this great project! At the moment there is only an application that keeps me on both macos and windows, its name is PWGL a free environment for computer assisted composition in openGL. (http://www2.siba.fi/PWGL/) I'm running Ubuntu 8.04 and wine 0.9.59. I have to say that I also installed vcrun2005 and
2018 Apr 12
0
RFC: Supporting the RISC-V vector extension in LLVM
...cision Vector Processors", Albert Ou, Quan > Nguyen, Yunsup Lee, Krste Asanović, > http://hwacha.org/papers/hwacha-mvp-prism2014.pdf > > > ## Producing vector code > > It is intended that vector code is primarily produced via loop > vectorization and other IR-level auto-vectorizers (e.g., the region > vectorizer), not written by hand. Supporting loop vectorization is of > highest priority. The groundwork for loop vectorization should be useful > for other kinds of automatic vectorization as well, but loop vectorization > will be implemented first. > > It...
2018 Apr 13
0
RFC: Supporting the RISC-V vector extension in LLVM
...gt;> Quan Nguyen, Yunsup Lee, Krste Asanović, >> http://hwacha.org/papers/hwacha-mvp-prism2014.pdf >> >> >> ## Producing vector code >> >> It is intended that vector code is primarily produced via loop >> vectorization and other IR-level auto-vectorizers (e.g., the region >> vectorizer), not written by hand. Supporting loop vectorization is of >> highest priority. The groundwork for loop vectorization >> should be useful for other kinds of automatic vectorization as well, >> but loop vectorization will be implemented...
2012 Feb 03
8
[LLVMdev] Vectorization: Next Steps
As some of you may know, I committed my basic-block autovectorization pass a few days ago. I encourage anyone interested to try it out (pass -vectorize to opt or -mllvm -vectorize to clang) and provide feedback. Especially in combination with -unroll-allow-partial, I have observed some significant benchmark speedups, but, I have also observed some significant slowdowns. I would like to share my thoughts, and hopefully get feedback, on next steps....
2015 Jul 08
7
[LLVMdev] LLVM loop vectorizer
Hello. I am trying to vectorize a CSR SpMV (sparse matrix vector multiplication) procedure but the LLVM loop vectorizer is not able to handle such code. I am using cland and llvm version 3.4 (on Ubuntu 12.10). I use the -fvectorize option with clang and -loop-vectorize with opt-3.4 . The CSR SpMV function is inspired...
2019 May 29
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...u think. >> >> Kind regards, >> >> Francesco >> >> >> ================================================================================= >> >> Introduction >> ============ >> >> This RFC encompasses the proposal of informing the vectorizer about the >> availability of vector functions provided by the user. The mechanism is >> based on the use of the directive `declare variant` introduced in OpenMP >> 5.0 [^1]. >> >> The mechanism proposed has the following properties: >> >> 1. Decouples the...
2019 May 28
6
[RFC] Expose user provided vector function for auto-vectorization.
...scope limits the impact of changes that are needed in both clang and LLVM. Please let me know what you think. Kind regards, Francesco ================================================================================= Introduction ============ This RFC encompasses the proposal of informing the vectorizer about the availability of vector functions provided by the user. The mechanism is based on the use of the directive `declare variant` introduced in OpenMP 5.0 [^1]. The mechanism proposed has the following properties: 1. Decouples the compiler front-end that knows about the availability of...
2018 Apr 16
1
RFC: Supporting the RISC-V vector extension in LLVM
...Case for MVPs: Mixed-Precision Vector Processors", Albert Ou, Quan Nguyen, Yunsup Lee, Krste Asanović, http://hwacha.org/papers/hwacha-mvp-prism2014.pdf ## Producing vector code It is intended that vector code is primarily produced via loop vectorization and other IR-level auto-vectorizers (e.g., the region vectorizer), not written by hand. Supporting loop vectorization is of highest priority. The groundwork for loop vectorization should be useful for other kinds of automatic vectorization as well, but loop vectorization will be implemented first. It's not required or...
2006 Aug 16
5
How to remove similar successive objects from a vector?
Is there some (much) more efficient way to do this? VECTOR=c(3,2,4,5,5,3,3,5,1,6,6); NEWVECTOR=VECTOR[1]; for(i in 1:(length(VECTOR)-1)) { if((identical(VECTOR[i], VECTOR[i+1]))==FALSE){ NEWVECTOR=c(NEWVECTOR,VECTOR[i+1])} } > VECTOR [1] 3 2 4 5 5 3 3 5 1 6 6 > NEWVECTOR [1] 3 2 4 5 3 5 1 6 _______________________________ Atte Tenkanen University of Turku, Finland
2016 Sep 21
5
RFC: Extending LV to vectorize outerloops
Proposal for extending the Loop Vectorizer to handle Outer Loops ================================================================ Goal: ----- We propose to extend the innermost Loop Vectorizer to also handle outerloops (cf.[1]). Our aim is to best leverage the efforts already invested in the existing innermost Loop Vectorizer rather th...
2016 Mar 02
4
Proposal for function vectorization and loop vectorization with function calls
...proposal for an initial work towards Clang and LLVM implementation of vectorizing a function annotated with OpenMP 4.5's "#pragma omp declare simd" (named SIMD-enabled function) and its associated clauses based on the VectorABI [2]. On the caller side, we propose to improve LLVM loopVectorizer such that the code that calls the SIMD-enabled function can be vectorized. On the callee side, we propose to add Clang FE support for "#pragma omp declare simd" syntax and a new pass to transform the SIMD-enabled function body into a SIMD loop. This newly created loop can then be fed to...
2019 Sep 03
2
SourceMgr vs EXPENSIVE_CHECKS
Hi, I'm trying to build llvm (git monorepo) on Ubuntu 18.04 with EXPENSIVE_CHECKS enabled and running into various errors compiling SourceMgr.cpp, depending on which host compiler I use. For example with GCC: $ CC=gcc-8 CXX=g++-8 cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_EXPENSIVE_CHECKS=ON ~/git/llvm-project/llvm/ && ninja ... [89/2690] Building CXX object
2016 Aug 01
2
LLVM Loop vectorizer - 2 vector.body blocks appear
Hello. Mikhail, with the more recent version of the LoopVectorize.cpp code (retrieved at the beginning of July 2016) I ran the following piece of C code: void foo(long *A, long *B, long *C, long N) { for (long i = 0; i < N; ++i) { C[i] = A[i] + B[i]; } } The vectorized LLVM program I obtain contains 2 vector.body blocks...
2019 May 29
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...esco >>>> >>>> >>>> ================================================================================= >>>> >>>> Introduction >>>> ============ >>>> >>>> This RFC encompasses the proposal of informing the vectorizer about the >>>> availability of vector functions provided by the user. The mechanism is >>>> based on the use of the directive `declare variant` introduced in OpenMP >>>> 5.0 [^1]. >>>> >>>> The mechanism proposed has the following propert...
2019 Sep 03
2
SourceMgr vs EXPENSIVE_CHECKS
Hmm. What about the errors I quoted from using clang-7 (starting about a third of the way down my email, sorry if they got kinda lost in all the noise)? Thanks, Jay. On Tue, 3 Sep 2019 at 20:00, David Blaikie <dblaikie at gmail.com> wrote: > > Looks to me like a bug in GCC's constexpr+_GLIBCXX_CONCEPT_CHECKS support. Small test case: > > $ g++-8 test.cpp -std=c++2a
2012 Feb 10
2
[LLVMdev] Vectorization: Next Steps
Carl-Philip, The reason that this does not vectorize is that it cannot vectorize the stores; this leaves only the mul-add chains (and some chains with loads), and they only have a depth of 2 (the threshold is 6). If you give clang -mllvm -bb-vectorize-req-chain-depth=2 then it will vectorize. The reason the heuristic has such a large default value i...
2016 Mar 02
2
Proposal for function vectorization and loop vectorization with function calls
Hi Michael. Thank for your feedback and questions/comments. See below. >>>>>I think it should be possible to vectorize such loop even without openmp clauses. We just need to gather a vector value from several scalar calls, and vectorizer already knows how to do that, we just need not to bail out early. Dealing with calls is tricky, but in this case we have the pragma, so we can assume it should be fine. What do you...
2004 Dec 30
2
is.vector(...) <-> is(..., "vector")
Hello, Is it intended that is.vector(...) and is(..., "vector") do not always give identical results? is.vector() works as documented ('is.vector' returns 'FALSE' if 'x' has any attributes except names.) Thus, A <- array(1:2, 1:2) M <- diag(2) is.vector(M) # FALSE, as documented # and is.vector(A) # FALSE, as documented # however is(M,