diff --git a/mllib-dal/src/main/native/OneDAL.cpp b/mllib-dal/src/main/native/OneDAL.cpp index 201d9c5a0..a2995429f 100644 --- a/mllib-dal/src/main/native/OneDAL.cpp +++ b/mllib-dal/src/main/native/OneDAL.cpp @@ -27,7 +27,7 @@ using namespace daal::data_management; extern bool daal_check_is_intel_cpu(); // Define a global native array -typedef std::shared_ptr NativeArrayPtr; +typedef std::shared_ptr NativeArrayPtr; std::mutex g_amtx; std::vector g_NativeArrayPtrVector; @@ -172,14 +172,14 @@ Java_com_intel_oap_mllib_OneDAL_00024_cNewCSRNumericTableDouble( * Method: cNewDoubleArray * Signature: (J)J */ -JNIEXPORT jlong JNICALL Java_com_intel_oap_mllib_OneDAL_00024_cNewDoubleArray( - JNIEnv *env, jobject, jlong size) { - std::cout << "create new native array size : " << size << std::endl; - NativeArrayPtr arrayPtr(new double[size], - [](double *ptr) { delete[] ptr; }); - saveArrayPtrToVector(arrayPtr); - return (jlong)arrayPtr.get(); -} +//JNIEXPORT jlong JNICALL Java_com_intel_oap_mllib_OneDAL_00024_cNewDoubleArray( +// JNIEnv *env, jobject, jlong size) { +// std::cout << "create new native array size : " << size << std::endl; +// NativeArrayPtr arrayPtr(new double[size], +// [](double *ptr) { delete[] ptr; }); +// saveArrayPtrToVector(arrayPtr); +// return (jlong)arrayPtr.get(); +//} /* * Class: com_intel_oap_mllib_OneDAL__ @@ -201,11 +201,11 @@ JNIEXPORT jlong JNICALL Java_com_intel_oap_mllib_OneDAL_00024_cNewFloatArray( * Signature: (J[DJ)V */ JNIEXPORT void JNICALL Java_com_intel_oap_mllib_OneDAL_00024_cCopyArrayToNative( - JNIEnv *env, jobject, jlong nativeArrayPtr, jdoubleArray sourceArray, + JNIEnv *env, jobject, jlong nativeArrayPtr, jfloatArray sourceArray, jlong index) { - double *nativeArray = reinterpret_cast(nativeArrayPtr); + float *nativeArray = reinterpret_cast(nativeArrayPtr); jsize sourceLength = env->GetArrayLength(sourceArray); - jdouble *source = static_cast( + jfloat *source = static_cast( env->GetPrimitiveArrayCritical(sourceArray, NULL)); std::copy(source, source + sourceLength, nativeArray + index); env->ReleasePrimitiveArrayCritical(sourceArray, source, 0); diff --git a/mllib-dal/src/main/native/oneapi/dal/HomogenTableImpl.cpp b/mllib-dal/src/main/native/oneapi/dal/HomogenTableImpl.cpp index 26e0e3ad7..313572992 100644 --- a/mllib-dal/src/main/native/oneapi/dal/HomogenTableImpl.cpp +++ b/mllib-dal/src/main/native/oneapi/dal/HomogenTableImpl.cpp @@ -342,7 +342,7 @@ JNIEXPORT jlong JNICALL Java_com_intel_oneapi_dal_table_HomogenTableImpl_dPtrIni JNIEXPORT jlong JNICALL Java_com_intel_oneapi_dal_table_HomogenTableImpl_fPtrInit( JNIEnv *env, jobject, jlong cRowCount, jlong cColCount, jlong dataPtr, jint cLayout, jint computeDeviceOrdinal) { printf("HomogenTable dPtrInit\n"); - double *fData = reinterpret_cast(dataPtr); + float *fData = reinterpret_cast(dataPtr); if (fData == NULL) { std::cout << "Error: unable to obtain critical array" << std::endl; exit(-1); @@ -360,8 +360,8 @@ JNIEXPORT jlong JNICALL Java_com_intel_oneapi_dal_table_HomogenTableImpl_fPtrIni case ComputeDevice::cpu: case ComputeDevice::gpu:{ auto queue = getQueue(device); - auto data = sycl::malloc_shared(cRowCount * cColCount, queue); - queue.memcpy(data, fData, sizeof(double) * cRowCount * cColCount).wait(); + auto data = sycl::malloc_shared(cRowCount * cColCount, queue); + queue.memcpy(data, fData, sizeof(float) * cRowCount * cColCount).wait(); tablePtr = std::make_shared(queue, data, cRowCount, cColCount, detail::make_default_delete(queue), dependencies, getDataLayout(cLayout));