vexcl | VexCL is a C vector expression template library | GPU library

 by   ddemidov C++ Version: 1.4.2 License: MIT

kandi X-RAY | vexcl Summary

kandi X-RAY | vexcl Summary

vexcl is a C++ library typically used in Hardware, GPU applications. vexcl has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

VexCL is a vector expression template library for OpenCL/CUDA. It has been created for ease of GPGPU development with C++. VexCL strives to reduce amount of boilerplate code needed to develop GPGPU applications. The library provides convenient and intuitive notation for vector arithmetic, reduction, sparse matrix-vector products, etc. Multi-device and even multi-platform computations are supported. The source code of the library is distributed under very permissive MIT license. See VexCL documentation at
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              vexcl has a low active ecosystem.
              It has 632 star(s) with 78 fork(s). There are 64 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 26 open issues and 168 have been closed. On average issues are closed in 58 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of vexcl is 1.4.2

            kandi-Quality Quality

              vexcl has 0 bugs and 0 code smells.

            kandi-Security Security

              vexcl has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              vexcl code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              vexcl is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              vexcl releases are available to install and integrate.
              It has 105 lines of code, 3 functions and 4 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of vexcl
            Get all kandi verified functions for this library.

            vexcl Key Features

            No Key Features are available at this moment for vexcl.

            vexcl Examples and Code Snippets

            No Code Snippets are available at this moment for vexcl.

            Community Discussions

            QUESTION

            Random number generator with Gaussian distribution for PyOpenCl
            Asked 2020-Mar-06 at 17:26

            Generating Gaussian random numbers using numpy turns out to be the bottleneck in my monte carlo simulation where I make heavy use of PyOpenCl.

            ...

            ANSWER

            Answered 2020-Mar-06 at 17:26

            Seems like pyopencl already includes a random number generator:

            https://github.com/inducer/pyopencl/blob/master/pyopencl/clrandom.py

            Running a simple test shows, that the mean and standard deviation are comparable to numpy's implementation. Also the histogram corresponds to the normal distribution with negligible mean squared error.

            Does anyone know further tests to check the quality of the random number generator?

            Edit: According to https://documen.tician.de/pyopencl/array.html

            Source https://stackoverflow.com/questions/60380379

            QUESTION

            Boost - Odeint: What means concurrency using VexCL and how to improve it?
            Asked 2020-Feb-12 at 06:19

            My question is related to the tutorial which explains how to implement boost::odeint with VexCL in order to achieve concurrency (the complete code can be found here).

            The following figure shows how I think of the iterations of ODEINT:

            Now I ask myself, what exactly / or which part of it is parallelised in VexCL?

            My impression is, the ODE part is one single task, as all equations of ODE are within one block in the given example. Maybe the integration part runs in three parallel tasks. This results in four tasks, where (I think) the ODE task is a bottle neck (because the equations can become very large).

            If this is right I would like to know, how to improve this concurrency. I think it make sense to combine ODE and INT horizontally. This results in 3 tasks, each of which cannot be further reduced at this level.

            ...

            ANSWER

            Answered 2020-Feb-12 at 06:19

            The example you linked to is doing a parameter study of the Lorenz system. That is, it solves a big number of the same equations with different parameters. The state type is vex::multivector, which packs together states (3D coordinates) of many Lorenz systems. This is an embarrassingly parallel problem and one can apply the odeint algorithm to the state types in lock-step. That is, operations like x += tau * dt where x and dt are large vectors, are performed on a GPU.

            More details about odeint/vexcl implementation may be found in [1]. [2] is an interesting paper about how to extract parallelism in the case of coupled systems.

            [1] Ahnert, Karsten, Denis Demidov, and Mario Mulansky. "Solving ordinary differential equations on GPUs." Numerical Computations with GPUs. Springer, Cham, 2014. 125-157. https://doi.org/10.1007/978-3-319-06548-9_7 (pdf)

            [2] Mulansky, Mario. "Optimizing Large-Scale ODE Simulations." arXiv preprint arXiv:1412.0544 (2014).

            Source https://stackoverflow.com/questions/60178543

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install vexcl

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/ddemidov/vexcl.git

          • CLI

            gh repo clone ddemidov/vexcl

          • sshUrl

            git@github.com:ddemidov/vexcl.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link