gpyfft | python wrapper for the OpenCL FFT library clFFT | GPU library

 by   geggo Python Version: v0.7.0 License: LGPL-3.0

kandi X-RAY | gpyfft Summary

kandi X-RAY | gpyfft Summary

gpyfft is a Python library typically used in Hardware, GPU applications. gpyfft has no bugs, it has no vulnerabilities, it has build file available, it has a Weak Copyleft License and it has low support. You can download it from GitHub.

A Python wrapper for the OpenCL FFT library clFFT.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              gpyfft has a low active ecosystem.
              It has 53 star(s) with 18 fork(s). There are 8 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 11 open issues and 21 have been closed. On average issues are closed in 269 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of gpyfft is v0.7.0

            kandi-Quality Quality

              gpyfft has 0 bugs and 0 code smells.

            kandi-Security Security

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

            kandi-License License

              gpyfft is licensed under the LGPL-3.0 License. This license is Weak Copyleft.
              Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.

            kandi-Reuse Reuse

              gpyfft releases are available to install and integrate.
              Build file is available. You can build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              gpyfft saves you 282 person hours of effort in developing the same functionality from scratch.
              It has 682 lines of code, 25 functions and 13 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed gpyfft and discovered the below as its top functions. This is intended to give you an instant insight into gpyfft implemented functionality, and help decide if they suit your requirements.
            • Test for 3d test
            • Enqueue arrays
            • Enqueue all arrays in the queue
            • Run the simulation
            • Copy CLFFTLL to the package
            • Get the python version
            • Get the README file
            Get all kandi verified functions for this library.

            gpyfft Key Features

            No Key Features are available at this moment for gpyfft.

            gpyfft Examples and Code Snippets

            No Code Snippets are available at this moment for gpyfft.

            Community Discussions

            Trending Discussions on gpyfft

            QUESTION

            Optimization of PyOpenCL program / FFT
            Asked 2020-Jan-17 at 01:42

            General Overview of Program: The majority of the code here creates the FrameProcessor object. This object is initialized with some data shape, generally 2048xN, and can then be called to process the data using a series of kernels (proc_frame). For each vector of length 2048 the program will:

            1. Apply a Hanning window (elementwise multiplication 2048*2048)
            2. Do a linear interpolation to remap values (to map to linear-in-wavenumber space from non-linear spectrometer bins which signal is derived from--not too important of a detail but I figured it would be good to include in case it was unclear)
            3. Apply an FFT

            Problem: I want to go faster! The code below is not performing poorly, but for this project I need it to be as fast as it can possibly be. However, I am unsure on how I might make further improvements to this code. So, I'm looking for suggestions on relevant reading, alternate libraries which I should use, changes to code structure, etc.

            Current Performance: On my rig with a GeForce RTX 2080 the benchmarks I get (with n=60, which seems to give best performance) are:

            ...

            ANSWER

            Answered 2020-Jan-17 at 01:42

            Copying my reply in the Reikna group for reference.

            1. Create a reikna Thread object from whatever pyopencl queue you want it to use (probably the one associated with the arrays you want to pass to FFT)
            2. Create an FFT computation based on this Thread
            3. Pass your pyopencl arrays to it without any conversion. (you can create a reikna array based on the buffer from a pyopencl array, by passing it as base_data keyword, but if using FFT is all you need, that is not necessary).

            Reikna threads are wrappers on top of pyopencl context + queue, and reikna arrays are subclasses of pyopencl arrays, so the interop should be pretty simple.

            Applying this (in a quick and dirty way, feel free to improve), I get: https://gist.github.com/fjarri/f781d3695b7c6678856110cced95be40 . Basically, the changes are:

            • creating a Thread out of the existing queue (self.thr = self.api.Thread(self.queue))
            • using the PyOpenCL buffer in FFT without copying it to CPU.

            The results I get:

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

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

            Vulnerabilities

            No vulnerabilities reported

            Install gpyfft

            You can download it from GitHub.
            You can use gpyfft like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            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/geggo/gpyfft.git

          • CLI

            gh repo clone geggo/gpyfft

          • sshUrl

            git@github.com:geggo/gpyfft.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