Description

Native Heterogeneous Computing for D

Package Information

Version0.0.0-alpha0 (2016-Sep-20)
Repository https://github.com/libmir/dcompute
LicenseBSL-1.0
CopyrightCopyright © 2016, Nicholas Wilson
AuthorsNicholas Wilson
Registered byIlya Yaroshenko
Dependencies

derelict-cl

derelict-cuda

Installation

To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Readme

#dcompute

Latest version Latest version License Gitter

##About

This project is a set of libraries designed to work with a modified ldc to enable native execution of D on GPUs (and other more exotic target of OpenCL, hereafter just 'GPUs').

There are three main parts

  • A standard library 'std' containing standard functionality for targetting GPUs.
  • A driver library to handle all the compute API interactions and provide a friendly easy-to-use consistent interface. Of course you can always get down to a lower level of interaction if you need to.
  • A set of standard kernels to cover a large number of use cases and serve as documentation on how (and how not) to use this library.

##Build Instructions

To build DCompute you will need a modified ldc available here. In addition you will need Khronos's SPIRV-LLVM (available here) (use the spirv-3.8 branch) as well as a dmd compatible d compiler and cmake for building ldc.

##Getting Started

Please see the wiki.

##TODO

Find out what khronos's clang mangles the OpenCL builtins' names to so that we can use the correct ones.

Get D versions of the OpenCL and CUDA APIs so that work can begin on a unified D driver API.

Available versions

0.0.0-alpha0 ~master ~wilzbach-change-wiki-link