Mercurial > hg > graal-compiler
diff src/gpu/ptx/vm/ptxKernelArguments.hpp @ 12653:1a7e7011a341
* PTX kernel argument buffer now has naturally aligned arguments as required by PTX JIT compiler.
* Change dynamic loading of CUDA driver API functions to load 32-bit or 64-bit versions of depending on the the host architecture.
* Add ability to generate PTX kernels to be launched both on 32-bit and 64-bit hosts.
* Use Unified Virtual Memory APIs to perform array argument marshalling.
* PTX array storage test runs on the device and returns correct results.
* More integer test failures on GPU fixed.
author | S.Bharadwaj Yadavalli <bharadwaj.yadavalli@oracle.com> |
---|---|
date | Fri, 01 Nov 2013 18:34:03 -0400 |
parents | f020e149c1b6 |
children | 220ed109bf77 |
line wrap: on
line diff
--- a/src/gpu/ptx/vm/ptxKernelArguments.hpp Fri Nov 01 13:07:22 2013 +0100 +++ b/src/gpu/ptx/vm/ptxKernelArguments.hpp Fri Nov 01 18:34:03 2013 -0400 @@ -45,10 +45,6 @@ // Device pointer holding return value gpu::Ptx::CUdeviceptr _dev_return_value; - // Indicates if signature iteration is being done during kernel - // setup i.e., java arguments are being copied to device pointers. - bool _kernelArgSetup; - private: // Array of java argument oops arrayOop _args; @@ -68,8 +64,6 @@ _success = true; _bufferOffset = 0; _dev_return_value = 0; - _kernelArgSetup = true; - //_dev_call_by_reference_args_index = 0; if (!is_static) { // TODO : Create a device argument for receiver object and add it to _kernelBuffer tty->print_cr("{CUDA] ****** TODO: Support for execution of non-static java methods not implemented yet."); @@ -87,17 +81,6 @@ return _bufferOffset; } - void copyRefArgsFromDtoH() { - _kernelArgSetup = false; - _bufferOffset = 0; - _index = 0; - iterate(); - } - - inline bool is_kernel_arg_setup() { - return _kernelArgSetup; - } - // Get the return oop value oop get_return_oop(); @@ -106,6 +89,10 @@ return _dev_return_value; } + /* + * Pad kernel argument buffer to naturally align for given size. + */ + void pad_kernel_argument_buffer(size_t); void do_byte(); void do_bool();