Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
11841:6157a71e0a36 | 11842:8d8f63069f58 |
---|---|
109 jobject args, jobject hotspotInstalledCode)) | 109 jobject args, jobject hotspotInstalledCode)) |
110 ResourceMark rm; | 110 ResourceMark rm; |
111 HandleMark hm; | 111 HandleMark hm; |
112 | 112 |
113 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false && gpu::is_initialized()) { | 113 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false && gpu::is_initialized()) { |
114 tty->print_cr("executeExternalMethodVarargs - not available / no linkage / not initialized"); | 114 tty->print_cr("executeParallelMethodVarargs - not available / no linkage / not initialized"); |
115 return NULL; | 115 return NULL; |
116 } | 116 } |
117 jlong nmethodValue = HotSpotInstalledCode::codeBlob(hotspotInstalledCode); | 117 jlong nmethodValue = HotSpotInstalledCode::codeBlob(hotspotInstalledCode); |
118 nmethod* nm = (nmethod*) (address) nmethodValue; | 118 nmethod* nm = (nmethod*) (address) nmethodValue; |
119 methodHandle mh = nm->method(); | 119 methodHandle mh = nm->method(); |
151 tty->print_cr("deviceInit - already initialized"); | 151 tty->print_cr("deviceInit - already initialized"); |
152 return true; | 152 return true; |
153 } | 153 } |
154 gpu::initialize_gpu(); | 154 gpu::initialize_gpu(); |
155 return gpu::is_initialized(); | 155 return gpu::is_initialized(); |
156 C2V_END | |
157 | |
158 C2V_VMENTRY(jint, availableProcessors, (JNIEnv *env, jobject)) | |
159 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false) { | |
160 tty->print_cr("deviceInit - not available / no linkage"); | |
161 return false; | |
162 } | |
163 return gpu::available_processors(); | |
156 C2V_END | 164 C2V_END |
157 | 165 |
158 C2V_VMENTRY(jboolean, deviceDetach, (JNIEnv *env, jobject)) | 166 C2V_VMENTRY(jboolean, deviceDetach, (JNIEnv *env, jobject)) |
159 return true; | 167 return true; |
160 C2V_END | 168 C2V_END |
197 | 205 |
198 JNINativeMethod CompilerToGPU_methods[] = { | 206 JNINativeMethod CompilerToGPU_methods[] = { |
199 {CC"generateKernel", CC"([B" STRING ")"GPUSPACE_METHOD, FN_PTR(generateKernel)}, | 207 {CC"generateKernel", CC"([B" STRING ")"GPUSPACE_METHOD, FN_PTR(generateKernel)}, |
200 {CC"deviceInit", CC"()Z", FN_PTR(deviceInit)}, | 208 {CC"deviceInit", CC"()Z", FN_PTR(deviceInit)}, |
201 {CC"deviceDetach", CC"()Z", FN_PTR(deviceDetach)}, | 209 {CC"deviceDetach", CC"()Z", FN_PTR(deviceDetach)}, |
210 {CC"availableProcessors", CC"()I", FN_PTR(availableProcessors)}, | |
202 {CC"executeExternalMethodVarargs", CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeExternalMethodVarargs)}, | 211 {CC"executeExternalMethodVarargs", CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeExternalMethodVarargs)}, |
203 {CC"executeParallelMethodVarargs", CC"(III["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeParallelMethodVarargs)}, | 212 {CC"executeParallelMethodVarargs", CC"(III["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeParallelMethodVarargs)}, |
204 }; | 213 }; |
205 | 214 |
206 int CompilerToGPU_methods_count() { | 215 int CompilerToGPU_methods_count() { |