search for: vectorized

Displaying 20 results from an estimated 27815 matches for "vectorized".

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
...hing that might change the vector length inside the function. This setup is effectively in the prologue (i.e., before any user code) but not actually inserted during the "prologue/epilogue insertion" pass, which runs far too late for this purpose. For scenarios like two entirely separate vectorized loops within one function, it might be useful to drastically change the vector unit configuration in the middle of a function. This could be implemented as an optimization (e.g., a pre-RA machine function), but it's all hypothetical so far. -------------- next part -------------- An HTML attach...
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
...he vector length inside the function. This setup is effectively in > the prologue (i.e., before any user code) but not actually inserted during > the "prologue/epilogue insertion" pass, which runs far too late for this > purpose. > > For scenarios like two entirely separate vectorized loops within one > function, it might be useful to drastically change the vector unit > configuration in the middle of a function. This could be implemented as an > optimization (e.g., a pre-RA machine function), but it's all hypothetical > so far. > > ________________________...
2018 Apr 13
0
RFC: Supporting the RISC-V vector extension in LLVM
...the function. >> This setup is effectively in the prologue (i.e., before any user code) but >> not actually inserted during the "prologue/epilogue insertion" pass, which >> runs far too late for this purpose. >> >> For scenarios like two entirely separate vectorized loops within one >> function, it might be useful to drastically change the vector unit >> configuration in the middle of a function. This could be implemented as an >> optimization (e.g., a pre-RA machine function), >> but it's all hypothetical so far. >> >...
2012 Feb 03
8
[LLVMdev] Vectorization: Next Steps
...ata" for vectorization - I think that in order to improve the vectorization quality, the vectorizer will need more information about the target. This information could be provided in the form of a kind of extended target data. This extended target data might contain: - What basic types can be vectorized, and how many of them will fit into (the largest) vector registers - What classes of operations can be vectorized (division, conversions / sign extension, etc. are not always supported) - What alignment is necessary for loads and stores - Is scalar-to-vector free? 2. Feedback between passes - W...
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 from
2019 May 29
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...ser. 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 vectorized routines, from the back-end that knows how to make use >> of them. >> 2. Enable support for a developer's own vector libraries without >> requiring changes to the compiler. >> 3. Enables other frontends (e.g. f18) to add scalar-to-vector function >>...
2019 May 28
6
[RFC] Expose user provided vector function for auto-vectorization.
...r 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 vectorized routines, from the back-end that knows how to make use of them. 2. Enable support for a developer's own vector libraries without requiring changes to the compiler. 3. Enables other frontends (e.g. f18) to add scalar-to-vector function mappings as relevant for their own runtime lib...
2018 Apr 16
1
RFC: Supporting the RISC-V vector extension in LLVM
...that might change the vector length inside the function. This setup is effectively in the prologue (i.e., before any user code) but not actually inserted during the "prologue/epilogue insertion" pass, which runs far too late for this purpose. For scenarios like two entirely separate vectorized loops within one function, it might be useful to drastically change the vector unit configuration in the middle of a function. This could be implemented as an optimization (e.g., a pre-RA machine function), but it's all hypothetical so far. -------------- next part -------------- An...
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
...tes, including both outer and innermost loops, to choose the most profitable ones. Background: ----------- The current Loop Vectorizer is confined to handle only innermost loops. In order to extend it to also handle outerloops the following design decisions need to be reworked: 1. The resulting vectorized loop is inherently designed to contain a *single* basic block. This poses an issue today, as innermost loops may benefit from retaining some internal branches when vectorized. For outerloops this clearly cannot hold - the resulting vectorized loop will contain more than a single basic block as it w...
2016 Mar 02
4
Proposal for function vectorization and loop vectorization with function calls
...torizing 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 LLVM loopVectorizer (or its future enhancement) for vectorization. This wor...
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
...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 - one named "vector.body" and the other "vector.body34" for example. The code seems correct - the first "vector.body" block is responsible for the vector add of a number of vector elements multiple of VF * UF. Ther...
2019 May 29
2
[cfe-dev] [RFC] Expose user provided vector function for auto-vectorization.
...f 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 vectorized routines, from the back-end that knows how to make use >>>> of them. >>>> 2. Enable support for a developer's own vector libraries without >>>> requiring changes to the compiler. >>>> 3. Enables other frontends (e.g. f18) to add scal...
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
...ill vectorize. The reason the heuristic has such a large default value is to prevent cases where it costs more to permute all of the necessary values into and out of the vector registers than is saved by vectorizing. Does the code generated with -bb-vectorize-req-chain-depth=2 run faster than the unvectorized code? The heuristic can certainly be improved, and these kinds of test cases are very important to that improvement process. -Hal On Thu, 2012-02-09 at 13:27 +0100, Carl-Philip Hänsch wrote: > I have a super-simple test case 4x4 matrix * 4-vector which gets > correctly unrolled, but is no...
2016 Mar 02
2
Proposal for function vectorization and loop vectorization with function calls
...not exist to start with. See below example, we need this functionality anyway as a fall back for vecotizing this loop when there is no SIMD version of dowork exist. E.g. #pragma clang loop vectorize(enable) for (k = 0; k < 4096; k++) { a[k] = k * 0.5; a[k] = dowork(a, k); } ==> Vectorized_for (k = 0; k < 4096; k+=VL) { // assume VL = 4. No vector version of dowork function exist. a[k:VL] = {k, k+1, K+2, k+3) * 0.5.; // Broadcast 0.5 to SIMD register, vector mul, with {k, k+1, k+2, k+3}, vector store to a[k:VL] t0 = dowork(a, k)...
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,