An open API service indexing awesome lists of open source software.

https://github.com/denyskryvytskyi/capgemini-opencl

OpenCL implementation of vector additon, matrix multiplication, reduction and sorting
https://github.com/denyskryvytskyi/capgemini-opencl

bitonic-sort cpp matrix matrix-multiplication matrix-multiplication-parallel matrix-transpose opencl opencl-kernels reduction sorting-algorithms vector vector-addition vectorization

Last synced: 3 months ago
JSON representation

OpenCL implementation of vector additon, matrix multiplication, reduction and sorting

Awesome Lists containing this project

README

        

# Capgemini OpenCL tasks
Tasks were implemented and tested on:
- Windows laptop: GPU: NVIDIA GTX 1050; CPU: Intel Core i7-7700HQ.
- Linux AWS instance machine: GPU: Nvidia Tesla m60; CPU: Intel Xeon CPU E5-2686.

Tasks list:
- vectors addition;
- matrix multiplication using tiles, GPU shared memory, and matrix transposition;
- reduction (sum);
- sorting using a custom implementation of the Bitonic sort algorithm.

## Getting Started
As both machines have NVIDIA GPU and installed CUDA toolkit, I've used OpenCL SDK from the CUDA toolkit.

- Install [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) or [OpenCL SDK](https://github.com/KhronosGroup/OpenCL-Guide/) separately.
- *[optional]* Install [Intel CPU Runtime for OpenCL](https://www.intel.com/content/www/us/en/developer/tools/opencl-cpu-runtime/overview.html) to enable OpenCL on Intel CPU.
- Check OpenCL .lib and headers in the Linux makefile and Windows solution for proper linking.
- Run programs using Make on Linux and Visual Studio 2022 on Windows.