gpu-speedups

GPU Speedups in Python

https://github.com/carpentries-incubator/gpu-speedups

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    10 of 55 committers (18.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

carpentries-incubator english gpu lesson pre-alpha python

Keywords from Contributors

auroc bootstrapping data-leakage prediction jekyll github-pages beta cwl common-workflow-language workflows
Last synced: 6 months ago · JSON representation ·

Repository

GPU Speedups in Python

Basic Info
Statistics
  • Stars: 2
  • Watchers: 5
  • Forks: 2
  • Open Issues: 4
  • Releases: 0
Topics
carpentries-incubator english gpu lesson pre-alpha python
Created almost 6 years ago · Last pushed over 5 years ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation Authors

README.md

Create a Slack Account with us

GPU Speedups in Python

This lesson explores how to parallelize Python code with GPU speedups. There are a number of ways to do this, and some methods overlap with others.

Audience

The intended audience are people familiar with Python, the python library numpy, and that have some initial familiarity with the ideas behind parallelization in computer programming.

Why GPUs?

Many computational problems are parallelizable and can be sped up 10-1000 times on the GPU. Suitable computations are doing the same thing to pieces of 1000s - trillions of pieces of data (records, samples, entries, etc).

Let's think of a familiar example: the average. An average of numbers stored in a vector can be computed by accumulating these numbers in one spot, and then dividing by the total number. The average does not depend on what order they are added together in, and no number "speaks" to another number. A for loop could do this, but why use a loop? Every pass through the loop is independent of each other. What if all the passes through the loops could be done at the same time? If you have problems like these, GPU speedups can pay off.

Python already has libraries for vectorized problems, like numpy. However, much of this code is actually a low level (eg in C) implementation that is non paralleled, but just loop really fast. There is overhead transferring data to the GPU, but if the computation is complicated enough, then doing it on the GPU can be worth it.

Also, some problems are not (easily) vectorizable or written as fast Numpy ufuncs. For example, each sub computation is independent, but you need some if/else clauses and can't put this into a matrix. If you cannot write down the problem as a series of matrix operations, but can write out what to do in each case, then you can code a kernel function that the GPU cores execute. There are 1000s of GPU cores on a single GPU device, unlike dozens of CPUs.

Contributing

We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.

We'd like to ask you to familiarize yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, ways to render the lesson locally, and even how to write new episodes.

Please see the current list of [issues][FIXME] for ideas for contributing to this repository. For making your contribution, we use the GitHub flow, which is nicely explained in the chapter Contributing to a Project in Pro Git by Scott Chacon. Look for the tag good_first_issue. This indicates that the maintainers will welcome a pull request fixing this issue.

Maintainer(s)

Current maintainers of this lesson are

  • Geoffrey Woollard (@geoffwoollard)

Authors

A list of contributors to the lesson can be found in AUTHORS

Citation

To cite this lesson, please consult with CITATION

Owner

  • Name: carpentries-incubator
  • Login: carpentries-incubator
  • Kind: organization

Citation (CITATION)

Please cite this lesson as:

Geoffrey Woollard.
GPU Speeups for Python.
https://https://github.com/carpentries-incubator/gpu-speedups,
2020.

GitHub Events

Total
Last Year

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 510
  • Total Committers: 55
  • Avg Commits per committer: 9.273
  • Development Distribution Score (DDS): 0.788
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
François Michonneau f****u@g****m 108
Greg Wilson g****n@t****m 95
Maxim Belkin m****n@g****m 70
Raniere Silva r****e@r****m 67
Abigail Cabunoc a****c@o****a 25
Raniere Silva r****e@i****r 24
Katrin Leinweber 9****r 16
geoffwoollard g****b@g****m 14
Joao Rodrigues j****s@g****m 10
Chris Erdmann c****s@c****g 8
Rémi Emonet r****t@r****e 5
David Mawdsley d****y@m****k 4
Piotr Banaszkiewicz p****r@b****g 4
William L. Close w****e 3
Michael R. Crusoe 1****c 3
Joseph Stachelek j****a 3
Raniere Silva r****7@i****r 2
Allen Lee a****e@a****u 2
Ana Costa 2****t 2
Brandon Curtis b****s@g****m 2
Ian Lee l****1@l****v 2
Tracy Teal t****t@i****g 2
James Allen j****8@g****m 2
Jon Pipitone j****e@u****a 2
Nick Young n****g@a****z 2
Rayna M Harris r****s 2
evanwill e****w@g****m 2
Erin Becker e****r@g****m 2
Sarah Brown s****n@b****u 1
Stephan Druskat m****l@s****t 1
and 25 more...

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 3
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.33
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tobyhodges (2)
  • bkmgit (1)
Pull Request Authors
  • geoffwoollard (1)
Top Labels
Issue Labels
Pull Request Labels