r216925 - in /branches/gomp-4_0-branch/libgomp:...

jules@gcc.gnu.org jules@gcc.gnu.org
Thu Oct 30 11:49:00 GMT 2014


Author: jules
Date: Thu Oct 30 11:49:04 2014
New Revision: 216925

URL: https://gcc.gnu.org/viewcvs?rev=216925&root=gcc&view=rev
Log:
2014-10-30  Julian Brown  <julian@codesourcery.com>

	* env.c (oacc-int.h): Include.
	* libgomp-plugin.h (GOMP_PLUGIN_async_unmap_vars): Don't declare
	here.
	* libgomp.map (PLUGIN_1.0): Add GOMP_PLUGIN_acc_thread symbol.
	* oacc-async.c (oacc-int.h): Include.
	(acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
	(acc_wait_all, acc_wait_all_async): Use base_dev not ACC_dev.
	* oacc-cuda.c (oacc-int.h): Include.
	(acc_get_current_cuda_device, acc_get_current_cuda_context)
	(acc_get_cuda_stream): Use base_dev not ACC_dev.
	(acc_set_cuda_stream): Call ACC_lazy_initialize, use base_dev not
	ACC_dev.
	* oacc-host.c (oacc-plugin.h, oacc-int.h): Include one or the
	other, depending on HOST_NONSHM_PLUGIN setting.
	(openacc_create_thread_data, openacc_destroy_thread_data): New.
	(host_dispatch): Initialize create_thread_data_func,
	destroy_thread_data_func hooks.
	* oacc-init.c (oacc-int.h): Include.
	(acc_device_lock): Make static.
	(ACC_dev, ACC_handle, handle_num, struct ACC_context, ACC_contexts):
	Remove.
	(base_dev, goacc_threads, goacc_thread_lock, goacc_cleanup_key):
	Add.
	(goacc_tls_data, goacc_tls_key): Define one or the other, depending
	on HAVE_TLS setting.
	(dispatchers): Add comment.
	(ACC_register): Only register 0th device.
	(close_handle): Remove.
	(_acc_init): Add comment. Don't use ACC_dev.
	(goacc_new_thread, goacc_destroy_thread): New.
	(lazy_open): Update comment. Remove code relating to contexts and
	memory maps. Create thread-specific data if necessary.
	(acc_init): Use base_dev not ACC_dev.
	(_acc_shutdown): Don't call close_handle. Use base_dev not ACC_dev.
	Free target-specific TLS data and close devices that are open at
	the time of shutdown.
	(lazy_init): Add comment. Use base_dev not ACC_dev.
	(lazy_init_and_open): Add comment. Use base_dev not ACC_dev.
	(acc_get_num_devices, acc_get_device_type, acc_get_device_num): Use
	base_dev not ACC_dev.
	(acc_set_device_num): Likewise. If switching device number,
	de-associate previous device number from the current thread, but do
	not close the device.
	(acc_on_device): Check type for device for current thread, not
	ACC_dev.
	(ACC_runtime_initialize): Initialize goacc_tls_key,
	goacc_cleanup_key, base_dev, goacc_threads, goacc_thread_lock. Don't
	initialize ACC_contexts.
	(saved_bound_dev): Remove.
	(ACC_save_and_set_bind, ACC_restore_bind): Use goacc_thread.
	(ACC_lazy_initialize): Use base_dev, goacc_thread instead of
	ACC_dev, ACC_memmap.
	* oacc-int.h (struct ACC_dispatch_t): Don't declare here.
	(struct goacc_thread): New.
	(goacc_tls_data): Define for HAVE_TLS.
	(goacc_tls_key): Define for !HAVE_TLS.
	(goacc_thread): New (versions with and without HAVE_TLS).
	(ACC_mem_open, ACC_mem_close, ACC_resolve_device, ACC_dev)
	(ACC_handle, struct memmap_t, ACC_memmap): Remove.
	(base_dev): Add extern declaration.
	* oacc-mem.c (oacc-int.h, assert.h): Include.
	(ACC_memmap, ACC_mem_open, ACC_mem_close): Remove.
	(lookup_host): Change memmap_t argument to struct
	gomp_memory_mapping.
	(lookup_dev): Change memmap_t argument to struct target_mem_desc.
	Use list_count not refcount for iterating over mapped elements.
	(acc_malloc): Use base_dev not ACC_dev.
	(acc_free): Update call to lookup_dev. Use base_dev not ACC_dev.
	(acc_memcpy_to_device, acc_memcpy_from_device): Use base_dev not
	ACC_dev.
	(acc_deviceptr, acc_is_present): Update call to lookup_host.
	(acc_hostptr): Update call to lookup_dev.
	(acc_map_data): Look up thread device instead of using ACC_dev,
	update calls to lookup_host, lookup_dev. Use data environment in
	device descriptor.
	(acc_unmap_data): Update call to lookup_host. Remove mapped data
	from data environment not ACC_memmap.
	(present_create_copy): Update call to lookup_host. Use data
	environment instead of list in ACC_memmap.
	(delete_copyout): Update call to lookup_host. Look up device in
	current thread info instead of using ACC_dev.
	(update_dev_host): Look up device in current thread info instead of
	using ACC_dev.
	* oacc-parallel.c (oacc-int.h): Include.
	(struct devgeom, devgeom, dump_devaddrs): Remove.
	(select_acc_device): Call ACC_lazy_initialize earlier.
	(GOACC_parallel): Use device for current thread instead of ACC_dev.
	Use memory map from current device.
	(GOACC_data_start): Likewise. Use thread info block for mapped data.
	(GOACC_data_end): Use thread info block for mapped data.
	(goacc_wait): Use device for current thread instead of ACC_dev.
	(GOACC_update): Likewise. Formatting fixes.
	* oacc-plugin.c (ACC_plugin_register): Remove.
	(oacc-int.h): Include.
	(GOMP_PLUGIN_acc_thread): New.
	* oacc-plugin.h (target.h): Don't include.
	(ACC_plugin_register): Remove.
	(GOMP_PLUGIN_async_unmap_vars, GOMP_PLUGIN_acc_thread): Add extern
	declarations.
	* plugin-nvptx.c (oacc-plugin.h): Include.
	(current_stream, PTX_dev, PTX_devices): Remove.
	(struct nvptx_thread): New.
	(nvptx_thread): New function.
	(select_stream_for_async): Locate ptx_dev in device-specific TLS
	data instead of using TLS PTX_dev variable.
	(PTX_init): Don't initialize PTX_devices.
	(PTX_open_device): Remove PTX_devices list handling. Tweak context
	initialization.
	(PTX_close_device): Remove PTX_devices list handling. Find PTX
	device info via function argument instead of global TLS variable.
	(PTX_get_num_devices): Make callable when backend has not been
	initialized.
	(event_gc): Find PTX device info, current stream via nvptx_thread.
	(event_add, PTX_exec, PTX_host2dev, PTX_dev2host)
	(PTX_async_test_all, PTX_wait_all, PTX_wait_all_async)
	(PTX_get_current_cuda_device, PTX_get_current_cuda_context)
	(PTX_get_cuda_stream, PTX_set_cuda_stream, openacc_close_device)
	(openacc_set_device_num, openacc_register_async_cleanup)
	(openacc_async_set_async): Likewise.
	(openacc_create_thread_data, openacc_destroy_thread_data): New.
	* target.c (oacc-int.h): Include.
	(gomp_fini_device): Split out memory-map freeing into...
	(gomp_free_memmap): ...this new function.
	(gomp_load_plugin_for_device): Initialize
	openacc.create_thread_data_func, openacc.destroy_thread_data_func
	hooks.
	(gomp_find_available_plugins): Initialize one target_device_descr
	per physical device.
	* target.h (oacc-int.h): Don't include.
	(ACC_dispatch_t): Declare here. Add data_environ, ord fields.
	Update comment for mem_map field.
	(gomp_free_memmap): Add prototype.


Modified:
    branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
    branches/gomp-4_0-branch/libgomp/env.c
    branches/gomp-4_0-branch/libgomp/libgomp-plugin.h
    branches/gomp-4_0-branch/libgomp/libgomp.map
    branches/gomp-4_0-branch/libgomp/oacc-async.c
    branches/gomp-4_0-branch/libgomp/oacc-cuda.c
    branches/gomp-4_0-branch/libgomp/oacc-host.c
    branches/gomp-4_0-branch/libgomp/oacc-init.c
    branches/gomp-4_0-branch/libgomp/oacc-int.h
    branches/gomp-4_0-branch/libgomp/oacc-mem.c
    branches/gomp-4_0-branch/libgomp/oacc-parallel.c
    branches/gomp-4_0-branch/libgomp/oacc-plugin.c
    branches/gomp-4_0-branch/libgomp/oacc-plugin.h
    branches/gomp-4_0-branch/libgomp/plugin-nvptx.c
    branches/gomp-4_0-branch/libgomp/target.c
    branches/gomp-4_0-branch/libgomp/target.h



More information about the Gcc-cvs mailing list