Graf commitů

129 Commity

Autor SHA1 Zpráva Datum
Aditya Atluri 26985b746b added device math functions 2016-03-31 12:29:19 -05:00
Aditya Atluri 72c72d8748 moved cpp specific device code from headers to source 2016-03-31 04:45:00 -05:00
Aditya Atluri 39af5d9caf Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging 2016-03-29 11:18:09 -05:00
Ben Sander 740b730cac Add runtime switch to control HIP_ATP_MARKER
Only generate the function strings if requested at
compile-time && runtime.
2016-03-29 17:27:30 -05:00
Aditya Atluri 61cd2bb399 Calling intrinsics from global kernel 2016-03-29 11:17:55 -05:00
Ben Sander 8635863724 Tweak thread-safe implementation.
introduce LockedAccessor option so destructor does not unlock.
Allows locks to exist across function boundaries, required
for hipLaunchKernel macro which has several unusual requirements.
(including C comppatibility, must use variadic macro, more).
2016-03-28 21:41:47 -05:00
Ben Sander 3f18bab2c7 Stream thread-safe checkpoint.
Moving data structures to critical / protected section.
2016-03-28 09:46:40 -05:00
Ben Sander ec049e7f0b Stream thread-safe checkpoint. 2016-03-28 04:22:20 -05:00
Ben Sander 7934cf620d Improve debug print messages.
- Remove "call-to-call" for hipStreamCreate and hipEventCreate.
  These now call an internal functions rather than calling through
  hipStreamCreateWithFalgs and hipEventCreateWithFlags.

- Add HIP_INIT_API for more functions so they trace correctly.

- Use stream#DEVICE.STREAMID in debug messages via new specialization in
  tace_helper.
2016-03-26 12:35:04 -05:00
Ben Sander 395e7eab96 Protect _stream_id as well.
- move lockedaccessor
- clean up device class.
- add simple ihipDevice constructor.
2016-03-26 11:45:25 -05:00
Ben Sander 530ab9434a Make ihipDevice_t thread-safe.
Move critical data into separate class and protect with LockAccessor
wrapper class.

For device, the streams list is the critical data since it is modified when
streams are created or destroyed.   The streams list is accessed in
several places including when synchronizing across all streams on the
device (ie from the default stream).
Other device data is set once by the device cosntructor and is not critical
so

All functions which acquire the LockAccessor now named with "locked_" prefix.
2016-03-26 10:46:20 -05:00
pensun 535de2ecc1 fix query of memoryClockRate and memoryBusWidth for both NV and HCC path 2016-03-25 09:24:08 -05:00
Aditya Atluri 95c96638aa Added canMapMemory feature to device properties 2016-03-24 07:33:24 -05:00
Aditya Atluri c5ec73736d added CR and hipsetdeviceflags func 2016-03-24 07:04:01 -05:00
Aditya Atluri 794007c3e8 Split files based on functionality and changed cmake file 2016-03-24 04:57:30 -05:00
Ben Sander 655534b1ba Partition hip_hcc into sections
Separate files for different categories of HIP API.
Currently just #include into hip_hcc.cpp
2016-03-24 09:28:54 -05:00
Aditya Atluri 7920fd9a47 moved variables to headers 2016-03-23 12:59:52 -05:00
Aditya Atluri 5637bde4b3 reverted back to old infra with cmake added 2016-03-23 11:13:02 -05:00
Aditya Atluri 89bfc0e375 WIP added modular feature for device apis 2016-03-23 07:54:01 -05:00
Ben Sander eced013ae4 Update docs:
- Some comments in hip_hcc.cpp
 - document hipHostRegister* flags.
 - expand docs on hipHostRegister/Unregister. Use "register" rather than
   "pin" to describe action these take.
 - change required CUDA version to 6 (require unified memory)
 - remake doxygen.
2016-03-23 23:11:15 -05:00
Aditya Atluri 362867d325 fixed hipHostGetFlags test 2016-03-23 02:45:21 -05:00
Aditya Atluri 36d0da99c1 Remove redundant hpiHostGetDevicePointer 2016-03-23 09:21:02 -05:00
Ben Sander 6ab48d7b90 Add USE_AV_COPY (replaces calls to am_copy with new acc_view::copy 2016-03-23 10:30:53 -05:00
Ben Sander 0f81c5bcf2 use the CPU_Agent for memory copies to indicate direction. 2016-03-23 10:29:44 -05:00
Ben Sander d07b347cac Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp
2016-03-23 03:22:09 -05:00
Ben Sander f863c5c6aa Add unique stream_id to devices to improve debug 2016-03-23 03:17:19 -05:00
Ben Sander 2569e15375 Improve trace API
- Validate compile-time disables.
- Add README.md section explain how to install/use CodeXL tracing
- Add code docs on trace_helper.h
- fix color on hipLaunchKernel to green.
2016-03-23 02:57:52 -05:00
Ben Sander 33bbf1463f HIP_TRACE_API prints function args, and in color 2016-03-23 02:19:49 -05:00
Ben Sander b6b3fea05b use codexl marker interface to mark HIP function/begin end.
- Creates markers in HIP group and they show up in CodeXL trace
- Marker text includes HIP functioin arguments
- (Add trace_helper to convert arguments to strings)
- Still need to add HIP_INIT_API for ~30 HIP functions.
2016-03-23 01:17:53 -05:00
Ben Sander ab910efb96 hipHostRegister and hipHostMalloc refactor.
Note hipHostMalloc (not hipHostAlloc or hipMallocHost).
 -  the hipHost* is used for all HIP APIs dealing with Host memory.
    (including hipHostMalloc, hipHostFree, hipHostRegister,
hipHostUnregister, hipHostGetFlags, hipHostGetDevicePointer).
  - hipMallocHost is consistent with "hipMalloc" for allocating device
    memory.  Enumerations hipHostMalloc* also used as optional
    flags parm to hipHostMalloc.
2016-03-22 02:30:10 -05:00
Aditya Atluri 52cf63472c Revert "Revert "fixed memory free apis""
This reverts commit 287ba34aca.
2016-03-21 10:40:42 -05:00
Aditya Atluri 287ba34aca Revert "fixed memory free apis"
This reverts commit 96a1899df7.
2016-03-21 10:36:11 -05:00
Aditya Atluri 96a1899df7 fixed memory free apis 2016-03-21 10:32:30 -05:00
Aditya Atluri 6b3821afc7 suppressed warning in hipFreeHost 2016-03-20 15:31:59 -05:00
Aditya Atluri a232d65db1 Added feature for --default-streams not working tests and hipcc 2016-03-20 08:08:33 -05:00
Ben Sander deb38625ca Implement hipHostFree on HCC path 2016-03-19 23:25:11 -05:00
Ben Sander 194d02ac5a Refactor copy - place common code in resolveMemoryKind. 2016-03-19 22:56:10 -05:00
Ben Sander 52cc2bb75a Refactor waitALlDevices and async mem copy.
- move waitAllStreams to device member function.
- create separate stream member function for copyAsync, like copySync.
  hipMemcpyAsync now calls the copyAsync.
2016-03-19 05:42:19 -05:00
Ben Sander d898997c65 Swap in corrected hipHostAlloc (bad merge) 2016-03-19 04:11:08 -05:00
Ben Sander 1de63bfeea Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp
2016-03-19 03:22:09 -05:00
Ben Sander 6472c8b915 Fix copy and sync bugs. Remove extra sync in default stream.
- NULL stream was waiting for itself to be empty before each command.
- Force "blocking" streams to wait for NULL to empty.  This was missing
  before.
- async copy was disabling itself via trueAsync=false for common cases.

Refactor:
- rename _null_stream to _default_stream.
- move some null sync function to defaultSync, move to dev member func.
2016-03-19 02:44:26 -05:00
Ben Sander 0af4d3623f Refactor copy code.
-Move staging buffer locks inside the staging buffer code.
-Remove dedicated per-device completion_signal + per-device lock -
instead allocated signal from the per-stream pool.   This elimintes
the lock and allows more concurrency.
-remove switch HIP_DISABLE_BIDIR_MEMCPY
2016-03-18 03:02:00 -05:00
Ben Sander 7d500599fa Refactor staging buffer and sync copies.
- refactor staging buffer to operate on hsa* data structures not
  hc::accelerator.
- use hsa_memory_allocate to allocate staging buffers rather than
  am_alloc.
- Refactor device reset with single member function.  Don't reallocate
  staging buffers on reset.
- Properly track dependencies based on command type.  Add new deps for
  H2D and D2D rather than overloading H2D.
2016-03-17 20:09:10 -05:00
Ben Sander e7586adb33 Refactor to isolate staging buffer code. 2016-03-17 00:20:56 -05:00
Ben Sander 28ee7aff71 Start separaration of staging_buffer.cpp code.
Still #include staging_buffer.cpp into hip_hcc.cpp.
Directed tests compile hip_hcc to static library and use the library.
2016-03-16 22:26:49 -05:00
Ben Sander ec50cbb3aa Checkpoint code cleanup.
- Refactor ihipStream in prep for thread-safe implementation.
- Do some work on PinInPlace implementation.
2016-03-16 21:16:29 -05:00
Aditya Atluri 1e588e56e0 changed flag in hipHostRegister 2016-03-16 08:01:53 -05:00
Aditya Atluri b768568902 src/ fixed hipHostAllocDefault flags 2016-03-16 07:32:54 -05:00
Ben Sander e1617b9604 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp
	tests/src/CMakeLists.txt
2016-03-14 15:01:26 -05:00
Ben Sander 1a27e5134e enable DB, comments 2016-03-14 14:40:41 -05:00