#include "HsFFI.h" #include #ifdef __cplusplus extern "C" { #endif typedef HsStablePtr AccHandle; typedef HsStablePtr AccProgram; typedef struct { int* shape; void** adata; } InputArray; typedef struct { int* shape; void** adata; HsStablePtr stable_ptr; } OutputArray; extern HsStablePtr accelerateCreate(HsInt32 device, HsPtr ctx); extern void accelerateDestroy(AccHandle hndl); extern void runProgram(AccHandle hndl, AccProgram p, InputArray* in, OutputArray* out); extern void freeOutput(OutputArray* out); extern void freeProgram(AccProgram a1); AccHandle accelerateInit(int argc, char** argv, int device, CUcontext ctx) { hs_init(&argc, &argv); return accelerateCreate(device, ctx); } #ifdef __cplusplus } #endif