Skip to main content

OpenCL based GPU-accelerated image processing (an early prototype)

Project description

pyclesperanto

pyclesperanto is a prototype for clEsperanto - a multi-platform multi-language framework for GPU-accelerated image procesing. It uses OpenCL kernels from CLIJ

Right now, this is very preliminary.

Installation

If installation of gputools doesn't work because of issues with pyopencl for Windows, consider downloading a precompiled wheel (e.g. from here ) and installing it manually:

pip install pyopencl-2019.1.1+cl12-cp37-cp37m-win_amd64.whl
pip install gputools

Afterwards, install pyclesperanto:

pip install pyclesperanto-prototype

Troubleshooting installation

If you receive an error like

DLL load failed: The specified procedure could not be found.

Try downloading and installing a pyopencl with a lower cl version, e.g. cl12 : pyopencl-2020.1+cl12-cp37-cp37m-win_amd64

Example code

An example is available in this script. Basically, you import the methods from clEsperanto you need:

import pyclesperanto_prototype as cle

You can then push an image to the GPU and create memory there:

import numpy as np

# push an array to the GPU
flip = cle.push(np.array([[2, 4, 6, 8, 10, 12, 14, 16, 18, 20][]))

# create memory for the output
flop = cle.create((10,1))

And then you can call methods in the GPU without the need for learning OpenCL:

# add a constant to all pixels
cle.add_image_and_scalar(flip, flop, 100.0)

# print result
print(flop)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyclesperanto_prototype-0.2.1.tar.gz (48.6 kB view hashes)

Uploaded Source

Built Distribution

pyclesperanto_prototype-0.2.1-py3-none-any.whl (186.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page