diff --git a/.gitignore b/.gitignore index 9e2c139..9d69742 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ config.status *.lo .libs/ libaparapi.la + +*.gz diff --git a/Makefile.am b/Makefile.am index 3ce710c..b9628b6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = include src/cpp/CLHelper.h src/cpp/classtools.h src/cpp/invoke/JavaArgs.h src/cpp/invoke/OpenCLMem.h src/cpp/invoke/OpenCLKernel.h src/cpp/invoke/OpenCLJNI.h src/cpp/invoke/OpenCLArgDescriptor.h src/cpp/invoke/OpenCLProgram.h src/cpp/CLException.h src/cpp/JNIHelper.h src/cpp/Common.h src/cpp/runKernel/KernelArg.h src/cpp/runKernel/Range.h src/cpp/runKernel/ProfileInfo.h src/cpp/runKernel/AparapiBuffer.h src/cpp/runKernel/Config.h src/cpp/runKernel/Aparapi.h src/cpp/runKernel/ArrayBuffer.h src/cpp/runKernel/JNIContext.h src/cpp/runKernel/List.h lib_LTLIBRARIES = libaparapi.la -libaparapi_la_LDFLAGS = -lOpenCL -version-info 1:0:0 +libaparapi_la_LDFLAGS = -lOpenCL -version-info 2:0:1 libaparapi_la_CPPFLAGS = -Iinclude -I/opt/AMDAPP/SDK/include -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/lib/jvm/java-8-openjdk/jre/../include -I/usr/lib/jvm/java-8-openjdk/jre/../include/linux -DCL_USE_DEPRECATED_OPENCL_1_1_APIS libaparapi_la_SOURCES = src/cpp/runKernel/Aparapi.cpp src/cpp/runKernel/ArrayBuffer.cpp src/cpp/runKernel/AparapiBuffer.cpp src/cpp/runKernel/Config.cpp src/cpp/runKernel/JNIContext.cpp src/cpp/runKernel/KernelArg.cpp src/cpp/runKernel/ProfileInfo.cpp src/cpp/runKernel/Range.cpp src/cpp/invoke/OpenCLJNI.cpp src/cpp/invoke/OpenCLArgDescriptor.cpp src/cpp/invoke/OpenCLMem.cpp src/cpp/CLHelper.cpp src/cpp/classtools.cpp src/cpp/JNIHelper.cpp src/cpp/agent.cpp all-local: diff --git a/configure.ac b/configure.ac index cf4cfbc..12633aa 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([libaparapi], [1.0.0], [jeffrey.freeman@syncleus.com]) +AC_INIT([libaparapi], [1.1.0], [jeffrey.freeman@syncleus.com]) AC_ENABLE_SHARED(yes) AC_ENABLE_STATIC(no) LT_INIT diff --git a/java b/java index 8ff589c..5ec2ef6 160000 --- a/java +++ b/java @@ -1 +1 @@ -Subproject commit 8ff589c520bd40e8b32c6e93f0ed3d252e3e230e +Subproject commit 5ec2ef67f57b46c24907de05c7dbdbf53873ef9a diff --git a/prepare.sh b/prepare.sh index 3be9cac..64807e7 100755 --- a/prepare.sh +++ b/prepare.sh @@ -1,4 +1,4 @@ #!/bin/sh mkdir include (cd java && mvn clean package) -javah -jni -classpath ./java/target/classes -d include -force com.syncleus.aparapi.internal.jni.ConfigJNI com.syncleus.aparapi.internal.jni.KernelArgJNI com.syncleus.aparapi.internal.jni.KernelRunnerJNI com.syncleus.aparapi.internal.jni.OpenCLJNI com.syncleus.aparapi.internal.jni.RangeJNI com.syncleus.aparapi.Kernel com.syncleus.aparapi.Range com.syncleus.aparapi.Config com.syncleus.aparapi.device.Device com.syncleus.aparapi.device.OpenCLDevice com.syncleus.aparapi.internal.kernel.KernelRunner com.syncleus.aparapi.internal.opencl.OpenCLArgDescriptor com.syncleus.aparapi.internal.opencl.OpenCLMem +javah -jni -classpath ./java/target/classes -d include -force com.aparapi.internal.jni.ConfigJNI com.aparapi.internal.jni.KernelArgJNI com.aparapi.internal.jni.KernelRunnerJNI com.aparapi.internal.jni.OpenCLJNI com.aparapi.internal.jni.RangeJNI com.aparapi.Kernel com.aparapi.Range com.aparapi.Config com.aparapi.device.Device com.aparapi.device.OpenCLDevice com.aparapi.internal.kernel.KernelRunner com.aparapi.internal.opencl.OpenCLArgDescriptor com.aparapi.internal.opencl.OpenCLMem diff --git a/src/cpp/JNIHelper.h b/src/cpp/JNIHelper.h index 750e21f..e63799c 100644 --- a/src/cpp/JNIHelper.h +++ b/src/cpp/JNIHelper.h @@ -44,10 +44,10 @@ #include "CLException.h" #define JavaLangPackage(name) "java/lang/" name #define JavaUtilPackage(name) "java/util/" name -#define AparapiPackage(name) "com/syncleus/aparapi/" name -#define AparapiDevicePackage(name) "com/syncleus/aparapi/device/" name -#define AparapiOpenCLPackage(name) "com/syncleus/aparapi/internal/opencl/" name -#define AparapiUtilPackage(name) "com/syncleus/aparapi/internal/util/" name +#define AparapiPackage(name) "com/aparapi/aparapi/" name +#define AparapiDevicePackage(name) "com/aparapi/aparapi/device/" name +#define AparapiOpenCLPackage(name) "com/aparapi/aparapi/internal/opencl/" name +#define AparapiUtilPackage(name) "com/aparapi/aparapi/internal/util/" name #define ProfileInfoClass AparapiPackage("ProfileInfo") #define OpenCLKernelClass AparapiOpenCLPackage("OpenCLKernel") @@ -87,7 +87,7 @@ #define VoidReturn ArgsVoidReturn("") -#define JNI_JAVA(type, className, methodName) JNIEXPORT type JNICALL Java_com_syncleus_aparapi_internal_jni_##className##_##methodName +#define JNI_JAVA(type, className, methodName) JNIEXPORT type JNICALL Java_com_aparapi_internal_jni_##className##_##methodName class JNIHelper { diff --git a/src/cpp/agent.cpp b/src/cpp/agent.cpp index ff681da..66d692d 100644 --- a/src/cpp/agent.cpp +++ b/src/cpp/agent.cpp @@ -62,14 +62,14 @@ class NameToBytes{ NameToBytes *head = NULL; /* - * Class: com_syncleus_aparapi_OpenCLJNI + * Class: com_aparapi_OpenCLJNI * Method: getClassBytes * Signature: (Ljava/lang/String;)V */ #ifdef __cplusplus extern "C" { #endif - JNIEXPORT jbyteArray JNICALL Java_com_syncleus_aparapi_OpenCLJNI_getBytes (JNIEnv *jenv, jobject instance, jstring className){ + JNIEXPORT jbyteArray JNICALL Java_com_aparapi_OpenCLJNI_getBytes (JNIEnv *jenv, jobject instance, jstring className){ jbyteArray bytes = NULL; const char *nameChars = jenv->GetStringUTFChars(className, NULL); fprintf(stdout, "inside getBytes(\"%s\")\n", nameChars); diff --git a/src/cpp/classtools.cpp b/src/cpp/classtools.cpp index 76b5c43..6b23475 100644 --- a/src/cpp/classtools.cpp +++ b/src/cpp/classtools.cpp @@ -553,7 +553,7 @@ bool isKernel(char *_className, ByteBuffer *_byteBuffer){ ClassConstantPoolEntry *superClassConstantPoolEntry = (ClassConstantPoolEntry*)constantPool[superClassConstantPoolIndex]; UTF8ConstantPoolEntry *superClassUTF8ConstantPoolEntry = (UTF8ConstantPoolEntry*)constantPool[superClassConstantPoolEntry->getNameIndex()]; - isAKernel= !strcmp((char *)(superClassUTF8ConstantPoolEntry->getUTF8Bytes()),"com/syncleus/aparapi/Kernel"); + isAKernel= !strcmp((char *)(superClassUTF8ConstantPoolEntry->getUTF8Bytes()),"com/aparapi/aparapi/Kernel"); #ifdef SHOW fprintf(stdout, "Class name at super index is \"%s\"\n", superClassUTF8ConstantPoolEntry->getUTF8Bytes()); diff --git a/src/cpp/invoke/JavaArgs.h b/src/cpp/invoke/JavaArgs.h index 7e37e20..dc8329b 100644 --- a/src/cpp/invoke/JavaArgs.h +++ b/src/cpp/invoke/JavaArgs.h @@ -1,15 +1,15 @@ #ifndef JAVA_ARGS_H #define JAVA_ARGS_H -#include "com_syncleus_aparapi_internal_opencl_OpenCLArgDescriptor.h" -#include "com_syncleus_aparapi_internal_opencl_OpenCLMem.h" +#include "com_aparapi_internal_opencl_OpenCLArgDescriptor.h" +#include "com_aparapi_internal_opencl_OpenCLMem.h" -#define arg(token) (com_syncleus_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_##token##_BIT) +#define arg(token) (com_aparapi_internal_opencl_OpenCLArgDescriptor_ARG_##token##_BIT) #define argisset(bits, token) (((bits) & arg(token)) == arg(token)) #define argset(bits, token) (bits) |= arg(token) #define argreset(bits, token) (bits) &= ~arg(token) -#define mem(token) (com_syncleus_aparapi_internal_opencl_OpenCLMem_MEM_##token##_BIT) +#define mem(token) (com_aparapi_internal_opencl_OpenCLMem_MEM_##token##_BIT) #define memisset(bits, token) (((bits) & mem(token)) == mem(token)) #define memadd(bits, token) (bits) |= mem(token) #define memreset(bits, token) (bits) &= ~mem(token) diff --git a/src/cpp/invoke/OpenCLJNI.cpp b/src/cpp/invoke/OpenCLJNI.cpp index 22ddfa0..9365f3b 100644 --- a/src/cpp/invoke/OpenCLJNI.cpp +++ b/src/cpp/invoke/OpenCLJNI.cpp @@ -47,7 +47,7 @@ #include "JavaArgs.h" #include -#include "com_syncleus_aparapi_internal_jni_OpenCLJNI.h" +#include "com_aparapi_internal_jni_OpenCLJNI.h" jobject OpenCLDevice::getPlatformInstance(JNIEnv *jenv, jobject deviceInstance){ diff --git a/src/cpp/runKernel/Aparapi.h b/src/cpp/runKernel/Aparapi.h index 2252aa6..e85bd77 100644 --- a/src/cpp/runKernel/Aparapi.h +++ b/src/cpp/runKernel/Aparapi.h @@ -41,7 +41,7 @@ #include "Common.h" -#include "com_syncleus_aparapi_internal_jni_KernelRunnerJNI.h" +#include "com_aparapi_internal_jni_KernelRunnerJNI.h" #include "CLException.h" #include "Range.h" #include "KernelArg.h" diff --git a/src/cpp/runKernel/AparapiBuffer.h b/src/cpp/runKernel/AparapiBuffer.h index 97d90ce..272cccf 100644 --- a/src/cpp/runKernel/AparapiBuffer.h +++ b/src/cpp/runKernel/AparapiBuffer.h @@ -40,7 +40,7 @@ #define APARAPIBUFFER_H #include "Common.h" #include "ProfileInfo.h" -#include "com_syncleus_aparapi_internal_jni_KernelRunnerJNI.h" +#include "com_aparapi_internal_jni_KernelRunnerJNI.h" class KernelArg; @@ -49,25 +49,25 @@ class AparapiBuffer{ private: static int isFloat(int type){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); } static int isLong(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); } static int isInt(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); } static int isDouble(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); } static int isBoolean(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); } static int isByte(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); } static int isShort(int type){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); } void buildBuffer(void* _data, cl_uint* _dims, cl_uint _numDims, long _lengthInBytes, jobject _javaObject); diff --git a/src/cpp/runKernel/Config.cpp b/src/cpp/runKernel/Config.cpp index e45420c..b5ebfee 100644 --- a/src/cpp/runKernel/Config.cpp +++ b/src/cpp/runKernel/Config.cpp @@ -45,7 +45,7 @@ jboolean Config::getBoolean(JNIEnv *jenv, const char *fieldName){ Config::Config(JNIEnv *jenv){ enableVerboseJNI = false; - configClass = jenv->FindClass("com/syncleus/aparapi/internal/jni/ConfigJNI"); + configClass = jenv->FindClass("com/aparapi/aparapi/internal/jni/ConfigJNI"); if (configClass == NULL || jenv->ExceptionCheck()) { jenv->ExceptionDescribe(); jenv->ExceptionClear(); diff --git a/src/cpp/runKernel/JNIContext.cpp b/src/cpp/runKernel/JNIContext.cpp index 6454fdf..ac06a6a 100644 --- a/src/cpp/runKernel/JNIContext.cpp +++ b/src/cpp/runKernel/JNIContext.cpp @@ -10,10 +10,10 @@ JNIContext::JNIContext(JNIEnv *jenv, jobject _kernelObject, jobject _openCLDevic profileBaseTime(0), passes(0), exec(NULL), - deviceType(((flags&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)?CL_DEVICE_TYPE_GPU:CL_DEVICE_TYPE_CPU), + deviceType(((flags&com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)?CL_DEVICE_TYPE_GPU:CL_DEVICE_TYPE_CPU), profileFile(NULL), valid(JNI_FALSE){ - if (flags&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC) + if (flags&com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC) deviceType = CL_DEVICE_TYPE_ACCELERATOR; cl_int status = CL_SUCCESS; jobject platformInstance = OpenCLDevice::getPlatformInstance(jenv, openCLDeviceObject); diff --git a/src/cpp/runKernel/JNIContext.h b/src/cpp/runKernel/JNIContext.h index 1ccc0ae..9771741 100644 --- a/src/cpp/runKernel/JNIContext.h +++ b/src/cpp/runKernel/JNIContext.h @@ -5,7 +5,7 @@ #include "Common.h" #include "KernelArg.h" #include "ProfileInfo.h" -#include "com_syncleus_aparapi_internal_jni_KernelRunnerJNI.h" +#include "com_aparapi_internal_jni_KernelRunnerJNI.h" #include "Config.h" class JNIContext { @@ -50,14 +50,14 @@ class JNIContext { jboolean isUsingGPU(){ //I'm pretty sure that this is equivalend to: - //return flags & com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU; - return((flags&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU?JNI_TRUE:JNI_FALSE); + //return flags & com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU; + return((flags&com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU?JNI_TRUE:JNI_FALSE); } jboolean isUsingACC(){ //I'm pretty sure that this is equivalend to: - //return flags & com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC; - return((flags&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC)==com_syncleus_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC?JNI_TRUE:JNI_FALSE); + //return flags & com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC; + return((flags&com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC)==com_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_ACC?JNI_TRUE:JNI_FALSE); } ~JNIContext(){ diff --git a/src/cpp/runKernel/KernelArg.h b/src/cpp/runKernel/KernelArg.h index 707b557..9b0e433 100644 --- a/src/cpp/runKernel/KernelArg.h +++ b/src/cpp/runKernel/KernelArg.h @@ -6,7 +6,7 @@ #include "JNIHelper.h" #include "ArrayBuffer.h" #include "AparapiBuffer.h" -#include "com_syncleus_aparapi_internal_jni_KernelRunnerJNI.h" +#include "com_aparapi_internal_jni_KernelRunnerJNI.h" #include "Config.h" #include @@ -103,64 +103,64 @@ class KernelArg{ } int isArray(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAY); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAY); } int isReadByKernel(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_READ); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_READ); } int isMutableByKernel(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_WRITE); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_WRITE); } int isExplicit(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT); } int usesArrayLength(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAYLENGTH); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAYLENGTH); } int isExplicitWrite(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE); } int isImplicit(){ return(!isExplicit()); } int isPrimitive(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_PRIMITIVE); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_PRIMITIVE); } int isGlobal(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_GLOBAL); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_GLOBAL); } int isFloat(){ - return(type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); + return(type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); } int isLong(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); } int isInt(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); } int isDouble(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); } int isBoolean(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); } int isByte(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); } int isShort(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); } int isLocal(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_LOCAL); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_LOCAL); } int isStatic(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_STATIC); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_STATIC); } int isConstant(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_CONSTANT); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_CONSTANT); } int isAparapiBuffer(){ - return (type&com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_APARAPI_BUFFER); + return (type&com_aparapi_internal_jni_KernelRunnerJNI_ARG_APARAPI_BUFFER); } int isBackedByArray(){ return ( (isArray() && (isGlobal() || isConstant()))); @@ -181,7 +181,7 @@ class KernelArg{ arrayBuffer->length = jenv->GetIntField(javaArg, numElementsFieldID); } void clearExplicitBufferBit(JNIEnv* jenv){ - type &= ~com_syncleus_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE; + type &= ~com_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE; jenv->SetIntField(javaArg, typeFieldID,type ); }