computablee / DotMP

A collection of powerful abstractions for parallel programming in .NET with an OpenMP-like API.
https://computablee.github.io/DotMP/
GNU Lesser General Public License v2.1
29 stars 8 forks source link

Implement baseline GPU functionality #95

Closed computablee closed 11 months ago

computablee commented 11 months ago

Which issue are you addressing?

This begins the long road towards implementing #44.

How have you addressed the issue?

This PR implements some extremely rudimentary GPU functionality, powered by ILGPU. Currently, there is support for DotMP.GPU.ParallelFor, supporting up to 4 arrays to be used during runtime. Data transfer has been implemented via DotMP.GPU.DataTo/DataFrom/DataToFrom. A basic tester has been implemented. This is a proof-of-concept and will require much more work before it is ready for a major release.

How have you tested your patch?

As aforementioned, a basic tester has been implemented, and has been confirmed to pass. Testing has only happened using the ILGPU CPU runtime, so I would like to run tests on a CUDA-enabled GPU before this makes it to main.