diff src/share/vm/runtime/gpu.hpp @ 13819:49db2c1e3bee

added support for co-existing GPU backends (JBS:GRAAL-1)
author Doug Simon <doug.simon@oracle.com>
date Thu, 30 Jan 2014 00:52:33 +0100
parents f1a55428a8d7
children b97e2515d392
line wrap: on
line diff
--- a/src/share/vm/runtime/gpu.hpp	Thu Jan 30 00:48:41 2014 +0100
+++ b/src/share/vm/runtime/gpu.hpp	Thu Jan 30 00:52:33 2014 +0100
@@ -27,85 +27,28 @@
 
 #include "runtime/atomic.hpp"
 #include "oops/symbol.hpp"
+#include "utilities/array.hpp"
 
 class PTXKernelArguments;
 
-// gpu defines the interface to the graphics processor; this includes traditional
-// GPU services such as graphics kernel load and execute.
-
-
-class gpu: AllStatic {
-public:
-
-  enum TargetGPUIL { NONE = 0, PTX = 1, HSAIL = 2};
-  static void init(void);
-
-  static void probe_gpu();
-
-  static void initialize_gpu();
-
-  static int available_processors();
-  
-  static void * generate_kernel(unsigned char *code, int code_len, const char *name);
+// Defines the interface to the graphics processor(s).
+class gpu : AllStatic {
+ private:
+  static int _initialized_gpus;
 
-  static bool execute_warp(int dimX, int dimY, int dimZ,
-                           address kernel, PTXKernelArguments & ptxka, JavaValue & ret);
-
-  static bool execute_kernel(address kernel, PTXKernelArguments & ptxka, JavaValue & ret);
-
-  // No return value from HSAIL kernels
-  static bool execute_kernel_void_1d(address kernel, int dimX, jobject args, methodHandle& mh);
-
-  static void set_available(bool value) {
-    _available = value;
-  }
-
-  static bool is_available() { return _available; }
-
-  static void set_initialized(bool value) {
-    _initialized = value;
-  }
+  // Notifies that a GPU device has been initialized.
+  static void initialized_gpu(const char* name);
 
-  static bool is_initialized() { return _initialized; }
-
-  static void set_gpu_linkage(bool value) {
-    _gpu_linkage = value;
-  }
-
-  static bool has_gpu_linkage() { return _gpu_linkage; }
-
-  static void set_target_il_type(TargetGPUIL value) {
-    _targetIL = value;
-  }
-
-  static enum gpu::TargetGPUIL get_target_il_type() {
-    return _targetIL;
-  }
+ public:
 
-protected:
-  static bool _available;
-  static bool _gpu_linkage;
-  static bool _initialized;
-  static TargetGPUIL _targetIL;
+  // Gets a comma separated list of supported GPU architecture names.
+  static jobject probe_gpus(JNIEnv* env);
+  
+  static int initialized_gpus() { return _initialized_gpus; }
 
-  // Platform dependent stuff
-#ifdef TARGET_OS_FAMILY_linux
-# include "gpu_linux.hpp"
-#endif
-#ifdef TARGET_OS_FAMILY_solaris
-#endif
-#ifdef TARGET_OS_FAMILY_windows
-# include "gpu_windows.hpp"
-#endif
-#ifdef TARGET_OS_FAMILY_bsd
-# include "gpu_bsd.hpp"
-#endif
-
-public:
 # include "ptx/vm/gpu_ptx.hpp"
 # include "hsail/vm/gpu_hsail.hpp"
 
 };
 
-
 #endif // SHARE_VM_RUNTIME_GPU_HPP