Skip to content
This repository contains components that will support percolation via OpenCL and CUDA
C++ Python CMake C Makefile Cuda
Branch: master
Clone or download
Latest commit 4bc4ad4 Sep 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Feature/circle ci2.0 (#78) Jul 30, 2018
benchmark
cmake Fix bug in findOpenCL for debian Jul 13, 2017
cuda Remove debugging stuff Sep 11, 2017
docs Generate minimal documentation Sep 22, 2016
examples Sc18paper (#80) Sep 1, 2018
external Add a target for generating documentation Sep 19, 2016
hpxcl Add example to the documentation (refs #23) Mar 15, 2016
opencl Update OpenCL to be aligned with the latest master of HPX Jul 20, 2018
python fixed stupid vector bug i hate vectors. Mar 10, 2014
tests Update OpenCL to be aligned with the latest master of HPX Jul 20, 2018
tools Feature/circle ci2.0 (#78) Jul 30, 2018
.editorconfig Add auxiliary files Oct 7, 2013
.gitattributes
.gitignore Cleaning up CUDA code base Aug 27, 2015
CMakeLists.txt Benchmarks opencl (#64) Jul 31, 2018
LICENSE_1_0.txt Add auxiliary files Oct 7, 2013
README.md Add DOI to the README Sep 4, 2018

README.md

HPX Compute Language (HPXCL) DOI

HPX is an open-source, general purpose C++ library for developing parallel and distributed applications with a broad community usage. This repository is for the development of HPX Compute language (HPXCL) API for the integration of GPU computation with asynchronous many task execution library HPX. Asynchronous functions are provided for kernel launch, kernel execution and data transfer with the capability to hide the communication latency through computation. This is done through the provision of Buffer, Device and Program.

To give an example, computation on multiple CPU nodes, GPU nodes can all occur in parallel and can be synchronized when the results are required by the user through the use of futures. This system unleashes the potential to take computation to the exa-scale level.

The documentation of the nightly build is available.

In any case, if you happen to run into problems we very much encourage and appreciate any issue reports through the issue tracker for this Github project.

The CircleCI contiguous integration service tracks the current build status for the master branch: HPXCL master branch build status

Build

  • CMake >= 3.0
  • GCC >= 4.9
  • HPX (Please use the current version in the master branch)

CUDA

Prerequisites:

  • CUDA SDK >= 7.0

Building:

mkdir build && cd build
cmake \
-DHPX_ROOT=/home/ubuntu/opt/hpx/ \
-DHPXCL_WITH_CUDA=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/opt/packages/cuda-7.0/	\
..

OpenCl

Prerequisties:

  • OpenCl >= 1.1

Building:

mkdir build && cd build
cmake	\
-DHPX_ROOT=/home/ubuntu/opt/hpx	\
-DHPXCL_WITH_OPENCL=ON \
..

Options

  • Build CUDA support: -HPXCL_WITH_CUDA (Default=Off)
  • Build examples: -DHPXCL_BUILD_EXAMPLES (Default=On)
  • Build benchmark: -DHPXCL_WITH_BENCHMARK (Default=Off)
  • Build documentation: -DHPX_WITH_DOCUMENTATION (Defaut=Off)
  • Build the naive CUDA benchmarks: -DHPXCL_WITH_NAIVE_CUDA_BENCHMARK (DEFAULT=Off)
  • Build the HPXCL CUDA Version with Streams: -DHPXCL_CUDA_WITH_STREAM (Default=On)
You can’t perform that action at this time.