Mercurial > hg > truffle
diff src/share/vm/graal/graalCompilerToGPU.cpp @ 11842:8d8f63069f58
PTX warp limiter to available GPU processors
author | Morris Meyer <morris.meyer@oracle.com> |
---|---|
date | Mon, 30 Sep 2013 13:03:47 -0400 |
parents | 365d8f385fb5 |
children | 67a1e27a8dbb |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompilerToGPU.cpp Mon Sep 30 17:03:14 2013 +0200 +++ b/src/share/vm/graal/graalCompilerToGPU.cpp Mon Sep 30 13:03:47 2013 -0400 @@ -111,7 +111,7 @@ HandleMark hm; if (gpu::is_available() == false || gpu::has_gpu_linkage() == false && gpu::is_initialized()) { - tty->print_cr("executeExternalMethodVarargs - not available / no linkage / not initialized"); + tty->print_cr("executeParallelMethodVarargs - not available / no linkage / not initialized"); return NULL; } jlong nmethodValue = HotSpotInstalledCode::codeBlob(hotspotInstalledCode); @@ -155,6 +155,14 @@ return gpu::is_initialized(); C2V_END +C2V_VMENTRY(jint, availableProcessors, (JNIEnv *env, jobject)) + if (gpu::is_available() == false || gpu::has_gpu_linkage() == false) { + tty->print_cr("deviceInit - not available / no linkage"); + return false; + } + return gpu::available_processors(); +C2V_END + C2V_VMENTRY(jboolean, deviceDetach, (JNIEnv *env, jobject)) return true; C2V_END @@ -199,6 +207,7 @@ {CC"generateKernel", CC"([B" STRING ")"GPUSPACE_METHOD, FN_PTR(generateKernel)}, {CC"deviceInit", CC"()Z", FN_PTR(deviceInit)}, {CC"deviceDetach", CC"()Z", FN_PTR(deviceDetach)}, + {CC"availableProcessors", CC"()I", FN_PTR(availableProcessors)}, {CC"executeExternalMethodVarargs", CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeExternalMethodVarargs)}, {CC"executeParallelMethodVarargs", CC"(III["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeParallelMethodVarargs)}, };