Commit Graph

85 Commits

Author SHA1 Message Date
Ben Sander 0134651419 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


[ROCm/hip commit: 0af4d3623f]
2016-03-18 03:02:00 -05:00
Ben Sander 3320975a80 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.


[ROCm/hip commit: 7d500599fa]
2016-03-17 20:09:10 -05:00
Ben Sander fc27c61c58 Refactor to isolate staging buffer code.
[ROCm/hip commit: e7586adb33]
2016-03-17 00:20:56 -05:00
Ben Sander 0ae7bc7e14 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.


[ROCm/hip commit: 28ee7aff71]
2016-03-16 22:26:49 -05:00
Ben Sander 0b617788a8 Checkpoint code cleanup.
- Refactor ihipStream in prep for thread-safe implementation.
- Do some work on PinInPlace implementation.


[ROCm/hip commit: ec50cbb3aa]
2016-03-16 21:16:29 -05:00
Ben Sander 0abf5db89e Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
Conflicts:
	src/hip_hcc.cpp
	tests/src/CMakeLists.txt


[ROCm/hip commit: e1617b9604]
2016-03-14 15:01:26 -05:00
Ben Sander 5951d581d9 enable DB, comments
[ROCm/hip commit: 1a27e5134e]
2016-03-14 14:40:41 -05:00
Ben Sander e08baf41d7 Remove ROCR_V2, assume=1
[ROCm/hip commit: b0dca6bd0c]
2016-03-12 04:08:13 -06:00
Ben Sander 30fbe45694 Remove USE_AM_TRACKER (assume 1)
[ROCm/hip commit: a5a2c7f33c]
2016-03-12 04:04:57 -06:00
Ben Sander 4900ebb39f Improve error reporting.
use throw with error class.
fix bug when memcpyDefault resolved to D2D copy.


[ROCm/hip commit: 250739666d]
2016-03-12 04:02:04 -06:00
Aditya Atluri db1ce3ba84 Added hipHostRegister for hip with tests and added copyright
[ROCm/hip commit: 102f173396]
2016-03-08 12:57:22 -06:00
Aditya Atluri ab68dc4240 v2 added support for unpinned async memcpy
[ROCm/hip commit: 18c0e69f51]
2016-03-08 03:19:50 -06:00
Aditya Atluri bf3d3a9745 Revert "Fixed passing unpinned memory to async memcpy"
This reverts commit c272c53808.


[ROCm/hip commit: 45965aaa2d]
2016-03-08 03:17:27 -06:00
Aditya Atluri c272c53808 Fixed passing unpinned memory to async memcpy
[ROCm/hip commit: 216af71480]
2016-03-08 03:14:49 -06:00
Ben Sander 82116d905d Enhance HIP trace debug functions.
- Control with HIP_DB=mask (env var).  See src/hip_hcc.cpp for mask
  values:
    #define DB_API    0 /* 0x01 - shortcut to enable HIP_TRACE_API on single switch */
    #define DB_SYNC   1 /* 0x02 - trace synchronization pieces */
    #define DB_MEM    2 /* 0x04 - trace memory allocation / deallocation */
    #define DB_COPY1  3 /* 0x08 - trace memory copy commands. . */
    #define DB_SIGNAL 4 /* 0x10 - trace signal pool commands */
- Combine with HIP_TRACE to see debug with API trace.
- Use colors to distinguish different flows of debug.
- Add define COMPILE_DB_TRACE to allow removing all debug at compile-time


[ROCm/hip commit: aa03e1264c]
2016-03-06 23:50:52 -06:00
Aditya Atluri 91dbc3114d added feature for hipHostGetFlags for CUDA and HIP
[ROCm/hip commit: 75952029d6]
2016-03-06 12:17:30 -06:00
Aditya Atluri 5346c57411 added flags support to be used later
[ROCm/hip commit: 1f3695b224]
2016-03-06 08:40:33 -06:00
Aditya Atluri f1b8758919 corrected hipDeviceGetProperties to hipGetDeviceProperties - not docs
[ROCm/hip commit: d3ba2b9782]
2016-03-06 08:31:04 -06:00
Aditya Atluri 3c91a6d0a7 Added hipHostAlloc with hipHostAllocMapped flag
[ROCm/hip commit: 3aa764d5eb]
2016-03-05 15:57:56 -06:00
Ben Sander e0497a9ae1 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
[ROCm/hip commit: 6d4c830613]
2016-03-04 08:22:56 -06:00
Ben Sander 7aaa474ef0 Add FORCE_SAMEDIR_DEP for copies.
[ROCm/hip commit: ed71cded1c]
2016-03-04 08:21:15 -06:00
Aditya Atluri 52049a5927 v2: Fixed implementation of hipMemcpyDefault flag
[ROCm/hip commit: bd23279271]
2016-03-04 06:00:04 -06:00
Ben Sander e60db0c25f Add define to disable STREAM thread-safety
[ROCm/hip commit: 5e51ff177a]
2016-03-03 10:49:25 -06:00
Aditya Atluri cc9a9cc5db Added support for hipMemcpyDefault
[ROCm/hip commit: c154e1f4e4]
2016-03-03 10:30:06 -06:00
Aditya Avinash Atluri 12e7f550b7 Update hip_hcc.cpp
[ROCm/hip commit: 40eefc1cde]
2016-03-03 13:59:43 -06:00
Aditya Avinash Atluri 057bcc73f1 Fix output of hipPointerGetAttributes
The output of hipPointerGetAttributes is fixed to match CUDA counterpart.

[ROCm/hip commit: b6e34a44b0]
2016-03-03 13:58:18 -06:00
Aditya Atluri 0ed3d943f1 Initialize hip when single kernel is called
[ROCm/hip commit: ce7ae41d42]
2016-03-02 08:08:45 -06:00
Aditya Avinash Atluri 5214b314a9 H2H Async memcpy fix
In this change, the cpu memcpy will wait until all the commands in the current stream are done.
Note that, it only waits on current stream. But not on other streams.

[ROCm/hip commit: 180bc32db0]
2016-02-29 12:49:50 -06:00
Ben Sander 5fc32bc1e8 Copy dependency bug fixes and test modes.
Add dependency for host-to-host copy.

Add debug mode for HIP_DISABLE_HW_COPY_DEP and
HIP_DISABLE_HW_KERNEL_DEP - setting these to -1 now ignores
all dependencies.


[ROCm/hip commit: ba9ad6be80]
2016-02-28 21:19:49 -06:00
Ben Sander cefe65e24a touchup
[ROCm/hip commit: af22d056e0]
2016-02-28 21:08:53 -06:00
pensun b9421830a4 Test cases for HIP_VISIBLE_DEVICES/CUDA_VISIBLE_DEVICES.
hipEnvVar is the base test case, to be called by hipEnvVarDriver
at the run time.
Test case includes tests for normal use case of the environment
variable, invalid value/sequence and use CUDA_VISIBLE_DEVICES as a
alternative.


[ROCm/hip commit: 39b44cb484]
2016-02-27 14:48:00 -06:00
pensun 1154872b0d improve the HIP_VISIBLE_DEVICES implementation
[ROCm/hip commit: 1f606261c1]
2016-02-27 14:14:08 -06:00
pensun a71c5a6cf0 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
[ROCm/hip commit: 07e56d4666]
2016-02-27 04:25:28 -06:00
Aditya Avinash Atluri f2dfb87abf Merge pull request #4 from AMDComputeLibraries/memtracker
hipGetPointerAttrib behavioral changes

[ROCm/hip commit: ecadb1623c]
2016-02-27 10:51:23 -06:00
Ben Sander 66d6dbf686 disable rocrv2, properly
[ROCm/hip commit: ea09557e1b]
2016-02-27 03:31:30 -06:00
Aditya Avinash Atluri e7631f28e5 Corrected hipPointerGetAttribute
Made hipPointerGetAttribute work same as cudaPointerGetAttribute for HCC

[ROCm/hip commit: 66aa7f2f8a]
2016-02-26 18:50:40 -06:00
pensun c864a3f0fd relsove conflicts
[ROCm/hip commit: 57f60b34fb]
2016-02-26 09:57:40 -06:00
pensun dc3710cee4 fix compiling error
[ROCm/hip commit: ee7ac16396]
2016-02-26 09:50:00 -06:00
Ben Sander 1ac07d2b87 fixes for titan platform
[ROCm/hip commit: ff66ef0779]
2016-02-26 05:25:30 -06:00
Ben Sander b46a90852e Disable ROCR_V2
[ROCm/hip commit: 6e0ccdfb95]
2016-02-26 23:34:45 -06:00
Ben Sander 193dbe4632 Merge branch 'memtracker' into privatestaging
Conflicts:
	include/nvcc_detail/hip_runtime_api.h


[ROCm/hip commit: 369e0d7b5b]
2016-02-26 06:17:05 -06:00
Ben Sander 8a2bcf2da3 Merge branch 'privatestaging' of https://github.com/AMDComputeLibraries/HIP-privatestaging into privatestaging
[ROCm/hip commit: c300ffe458]
2016-02-26 06:15:09 -06:00
Ben Sander a10f2d1a93 Merge branch 'memtracker' of https://github.com/AMDComputeLibraries/HIP-privatestaging into memtracker
Conflicts:
	tests/src/hipMemcpy.cpp


[ROCm/hip commit: d319299ddb]
2016-02-25 23:22:51 -06:00
Ben Sander 5ca4914e0e Merge branch 'memtracker' into privatestaging
Conflicts:
	src/hip_hcc.cpp


[ROCm/hip commit: 4adab7b7ef]
2016-02-25 19:38:46 -06:00
Ben Sander ae365b4ae2 Improve memory copy and commands switching
- Add chicken bits to use host-side dependency management.
- Add optional PinInPlace path for unpinned copies
- Synchronize before pinned memcpy path.
- Add mutex to protect two threads launching to same stream.


[ROCm/hip commit: 8b64c0dc62]
2016-02-25 19:19:49 -06:00
Evgeny Mankov 82900a1888 Attribute hipDeviceAttributeIsMultiGpuBoard for obtaining Device property isMultiGpuBoard is added.
On HIP path property obtaining done through hsa_iterate_agents and counting the devices of HSA_DEVICE_TYPE_GPU type.

P.S.
On multi-boards systems it might be problems with detection what board a GPU plugged into (not tested).


[ROCm/hip commit: 57e212606d]
2016-02-25 23:44:39 +03:00
Ben Sander 60552f5133 Add tests for multi-threaded streams
[ROCm/hip commit: 7090f5c3f9]
2016-02-23 12:08:22 -06:00
Ben Sander 1888acb5f3 Sync review.
- add calls to ihipInit missing from some routines.
- sync before draining a stream.


[ROCm/hip commit: 3886d494f4]
2016-02-23 04:07:11 -06:00
Ben Sander f0c734e256 Improve async copy implementation.
- Add device-side signal waits when transitioning between command classes
(Kernel, H2D copy, D2H copy).
- Support waiting in staged memory copies as well.
- Add several chicken bits to control implementation:
    - HIP_DISABLE_ENQ_BARRIER
    - HIP_DISABLE_BIDIR_MEMCPY
    - HIP_ONESHOT_COPY_DEP
- Refactor signal pool to support efficient deallocation based on
signsequnm.
- Deallocate copy signals on eventSynchronize.
- Improve copy tests, add pingpong.


[ROCm/hip commit: 549b18ce77]
2016-02-22 23:15:24 -06:00
Ben Sander 23b257bca4 Merge branch 'memtracker' of https://github.com/AMDComputeLibraries/HIP-privatestaging into memtracker
[ROCm/hip commit: 0a98db4b5f]
2016-02-22 08:33:47 -06:00