JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyToCPU(JNIEnv *env, jobject obj, jobject ndArrayHandle, jfloatArray data, jint size) { jclass refLongClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong"); jfieldID refLongFid = env->GetFieldID(refLongClass, "value", "J"); jlong ndArrayPtr = env->GetLongField(ndArrayHandle, refLongFid); jfloat *pdata = env->GetFloatArrayElements(data, NULL); int ret = MXNDArraySyncCopyToCPU((NDArrayHandle)ndArrayPtr, (mx_float *)pdata, size); env->ReleaseFloatArrayElements(data, pdata, 0); // copy back to java array automatically return ret; }
inline void NDArray::SyncCopyToCPU(std::vector<mx_float> *data, size_t size) { size = size > 0 ? size : Size(); data->resize(size); MXNDArraySyncCopyToCPU(blob_ptr_->handle_, data->data(), size); }
inline void NDArray::SyncCopyToCPU(mx_float *data, size_t size) { MXNDArraySyncCopyToCPU(blob_ptr_->handle_, data, size > 0 ? size : Size()); }