Commit Graph

2800 Commitit

Tekijä SHA1 Viesti Päivämäärä
Jay Cornwall c6bfeda697 Fix miscellaneous warnings flagged by Clang
Change-Id: I85a45cb3b44e4379b31bcc56af061fd1571f2af5


[ROCm/ROCR-Runtime commit: c30c25bd30]
2016-10-26 19:26:16 -05:00
Jay Cornwall 1b76d435b4 Insert explicit memory fence before submitting doorbell
Ensure that the write index and ring buffer contents are visible
to the HW before sending the doorbell. The latter is a write-combined
MMIO store and must be ordered with prior cacehable non-MMIO stores.

Also be more explicit about memory semantics for doorbell stores.

Change-Id: Ie4d96a7ee2a507237a8dbe7705fdf234d62ce9ba


[ROCm/ROCR-Runtime commit: d5b4078072]
2016-10-17 10:01:47 -04:00
Jay Cornwall 5467ef0a59 Fix AQL packet lookup in dynamic scratch event handler
Read index was not wrapped correctly.

Change-Id: I25c901b61e4760990871e22468ffd0391abef244


[ROCm/ROCR-Runtime commit: c83846cd45]
2016-10-17 10:01:14 -04:00
James Edwards d93ce4adc3 Fix hsa-runtime-tools library dependencies.
Change-Id: I649ebde06ab5c4b1892968c22e44c2bd5f53e49b


[ROCm/ROCR-Runtime commit: d66af9718e]
2016-10-15 14:35:44 -05:00
James Edwards 171802e188 Fix library namespace to ROCR_1.
Change-Id: Ie341203bad8e17673be86529bfed3c4fa98e9343


[ROCm/ROCR-Runtime commit: 4b6feb8498]
2016-10-13 16:26:46 -05:00
Konstantin Zhuravlyov 65e3c8c179 Initialize symbol's agent member for agent allocation symbols
Change-Id: I0ee0e07e4132ca13b3ecf7469c59ca327ff3c76d


[ROCm/ROCR-Runtime commit: 6f216f30c2]
2016-10-13 12:43:19 -04:00
Jay Cornwall 469f3a5b5d Disable GPUVM-mapped doorbell on gfx802
gfx802 requires a workaround for a VM TLB bug in which lookups use
the ACTIVE bit of the 8th PTE within any aligned group of 8 PTEs.
Until this is fixed in amdgpu the GPUVM doorbell logic will fail.

Change-Id: I5ec7b1fcd8b7677011a141d27cfc486c45d9a415
Signed-off-by: Jay Cornwall <Jay.Cornwall@amd.com>


[ROCm/ROCR-Runtime commit: 5493ae420b]
2016-10-10 18:39:31 -05:00
James Edwards b86f6d176e Modify image libraries CMakeLists.txt file to use HSAKMT variables.
Change-Id: I19f1c4a312b108774f2e3e9c6697db07e6731556


[ROCm/ROCR-Runtime commit: 070be8823f]
2016-09-30 23:05:38 -05:00
James Edwards 6f2c876923 Fix CMakeList.txt file to use correct compile options. Fix compilation errors.
Change-Id: I6229a83d0823ee7a123cdaa9efd782108aa3a03c


[ROCm/ROCR-Runtime commit: b170e0ad8c]
2016-09-30 16:36:01 -05:00
James Edwards 0a7bf6fe14 Update required cmake version to 3.5.1 to support rpm packages.
Change-Id: Ic8d0d96b131937407de2578a653025a44843d330


[ROCm/ROCR-Runtime commit: cfc949c1ee]
2016-09-30 16:04:02 -05:00
James Edwards a6b81aa2e9 Remove unneeded CMakeList.txt file. Move link and def files.
Change-Id: I219317496aa564bde488a8e56e7d83808ebddb66


[ROCm/ROCR-Runtime commit: 1b30c322f0]
2016-09-30 13:02:30 -05:00
James Edwards d35b7f118b Fix Teamcity build break, part 1.
Change-Id: I2019b502700e5fda2175b258dcfd3681ab93bc77


[ROCm/ROCR-Runtime commit: 41432ee6ca]
2016-09-29 18:41:54 -05:00
James Edwards b9b6f69860 Update runtime CMakeLists.txt and utility files to support top level CMakeLists.txt build.
Change-Id: I4a0eb512af82908a24f2d1964b201c28023ccae5


[ROCm/ROCR-Runtime commit: 809356e0b5]
2016-09-27 11:58:31 -04:00
Christophe Paquot 3ebe9fab51 Sync needed when wrapping around the kernel arg buffer
If we issue too many copy commands without syncing and wrapping happens,
we need to wait for the blits to be done before moving forward otherwise
we will overwrite the kernel args of the blits in flight.

Change-Id: I9a21e31ce07f8e8157ca38e96dc264ff47fd3639


[ROCm/ROCR-Runtime commit: 5519c96b74]
2016-09-26 14:14:33 -04:00
James Edwards a7dd25b98f Update rocr packaging CMakeList.txt files to PACKAGE and LIBRARY versioning. Also, fix support for rpm packaging.
Change-Id: Iff41df41ea78b7d1248164ce3f587ad34a8865a5


[ROCm/ROCR-Runtime commit: fddd5246f3]
2016-09-23 19:12:19 -04:00
Ramesh Errabolu 26495af3cd Support a new property of Rocr Agents called Product Name
Change-Id: Ia7217094223bfed908d9aa9ccdaa590e785503cb


[ROCm/ROCR-Runtime commit: 5d972064c1]
2016-09-21 17:00:41 -04:00
James Edwards 4ee6e7c69a Add libhsakmt cmake build and packaging files.
Change-Id: Ic7fa22d5b266480aa0c62628022f39da4e043d23


[ROCm/ROCR-Runtime commit: 7511631f08]
2016-09-20 17:48:36 -04:00
James Edwards 22d3ba4068 ADD copy_targets targets to ALL target
Change-Id: I3d4b28f873f09a9e866d9f27f0bdfd3c65494e6f


[ROCm/ROCR-Runtime commit: b4fedf6785]
2016-09-20 13:50:06 -05:00
Felix Kuehling fee7a91fb9 Allocate and map doorbells in SVM for discrete GPUs
Allocate doorbells for dGPUs in the SVM aperture and map them for
GPU access. This is necessary to allow GPU-initiated submissions to
user mode queues.

Depends on new doorbell BO allocation flag in KFD.

Change-Id: I0737bef4a4764bb4a66c43846707ead2108f6601


[ROCm/ROCR-Runtime commit: 2e0a6eb371]
2016-09-16 16:04:27 -04:00
Amber Lin 6b33ada07b Disable CPU cache info in non-x86
CPU cache information reported by Thunk topology is obtained from cpuid
instruction. This instruction only applies to X86 systems. It can cause
compile errors on non-X86 platforms. This patch temporarily disables CPU
cache functions in topology for non-X86 platforms in order to compile.

Change-Id: If86671817b0d036cb324eebf3f354682bfb75856


[ROCm/ROCR-Runtime commit: 660a6ebbd4]
2016-09-14 17:30:50 -04:00
Amber Lin 2dec7b1d74 Search VM object by range
Add vm_find_object_by_userptr_range so QueryPointerInfo can find the
object as well when the pointer is not the starting address but it's
inside the memory range. Also rename vm_find_object_xxx functions to
_by_address and _by_address_range to be consistent.

Change-Id: I5c2b3a05b41493e32b7fd9154665bf078b043606


[ROCm/ROCR-Runtime commit: 4911c91389]
2016-09-13 12:44:29 -04:00
Christophe Paquot 5544a9e5e5 Add tiling code
Introducing tiling format for images, still using LINEAR for now.
Using the new KFD/Thunk API hsaKmtGetTileConfig API for the address library.

Change-Id: Ic0677429dd320eef09ab62dddaf9b2dd94c4f904


[ROCm/ROCR-Runtime commit: 538736a660]
2016-09-13 11:42:10 -04:00
Amber Lin 4b17993791 Pointer attributes on APU
Add CPUVM aperture to keep track of memory allocation that is not known
to GPU driver. Together with GPUVM, this patch adds the pointer attributes
support to APU.

Change-Id: If13f9cf01ff8b9f709b99b66661e7505246adf4c


[ROCm/ROCR-Runtime commit: 19f2676ea7]
2016-09-12 11:32:26 -04:00
Ramesh Errabolu 85aa61f011 Print Debug Mesg if private segment memory request is illegal
Change-Id: I46351651b6b2bf14e26645440a4321bc941900b2


[ROCm/ROCR-Runtime commit: c54304fe38]
2016-09-08 11:16:09 -04:00
Amber Lin 8a1cef5fbb Add pointer attributes API
Add two pointer attributes APIs:
hsaKmtQueryPointerInfo - allow the user to query the memory information
    using a pointer. This pointer can point to any address inside the
    range known to HSA.
hsaKmtSetMemoryUserData - allow the user to attach data to a pointer to
    add memory tracking information. This pointer must match the start
    address of a memory allocation or registration.
TODO: This patch implements support on dGPU. Needs to add APU.

Change-Id: I4711809274248434901f0794f50ebfa13a7371a8


[ROCm/ROCR-Runtime commit: 51e4d27c37]
2016-09-07 17:24:46 -04:00
Sean Keely 3dd28a4064 Add missing export of hsa_signal_group_wait_any_relaxed.
Change-Id: Ia043c72234534c1ac7c0a0518b64e244fc116157


[ROCm/ROCR-Runtime commit: 2008af1899]
2016-09-07 15:03:33 -05:00
Yong Zhao cba37c251c Implement hsaKmtGetTileConfig in thunk
Change-Id: Iba8d8efa46e3c268a03442d3db568e1b19230e94


[ROCm/ROCR-Runtime commit: 8351b3d2e8]
2016-09-06 16:24:29 -04:00
Ramesh Errabolu 87018b14b4 Read name of Hsa Agent from a new field of Node Properties
Change-Id: I3abca521a904c40cb84d90800a16363b1ad64768


[ROCm/ROCR-Runtime commit: 5ab5396529]
2016-09-05 14:33:08 -04:00
Sean Keely 1306432ae1 Switch atomic_helpers.h from C11 atomics to GCC __atomic builtins.
C11 atomics are not statically guaranteed to be lock free and so
may not be atomic with respect to atomic operations originating
outside the standard library, such as platform atomics.

C11 macros to statically discover always lock free operations
(ATOMIC_*_LOCK_FREE) do not cover uint64_t in GCC and
std::atomic<uint64_t> is not a type alias of any covered type.

All use of __atomic by atomic_helpers.h is statically checked to be
always lock free.

GCC builtin fencing does not appear to be strong enough for WC memory.
Added an option (enabled) to enforce consistency for WC memory on x64.

__sync builtin's were not used as they were declared legacy by GCC.

Added a strongly conservative option (ALWAYS_CONSERVATIVE) to enable
use of full memory fences in place of partial fences and compiler
driven processor specific optimization.

Change-Id: Id7aaaca626144070f58759f6a348cbee4612bbc0


[ROCm/ROCR-Runtime commit: 1bc15bbf79]
2016-09-03 06:22:42 -04:00
Lan Xiao a015256f33 libhsakmt: Marketing Name and AMDName support for APUs
For APUs, use /proc/cpuinfo to get Marketing name.



Change-Id: I4a17516d26a092683f36631032be00ad44f7e7fe
Signed-off-by: Lan Xiao <Lan.Xiao@amd.com>


[ROCm/ROCR-Runtime commit: df593aa076]
2016-09-02 15:16:18 -04:00
Konstantin Zhuravlyov 2d64d36223 Use memcpy instead of hsa_memory_copy
Change hsa_code_object_serialize and hsa_code_object_deserialize to use memcpy instead of hsa_memory_copy since it is system->system copy

Change-Id: I329e270ae4e2fc25e177dc8080d93662ffb261ab


[ROCm/ROCR-Runtime commit: 73ed2116d5]
2016-09-01 01:56:07 -04:00
Konstantin Zhuravlyov a6d80953ba Purge unused variables (to silence warnings)
Change-Id: Ifc11c4bc4725f4c70d6be75208b6906d163754b4


[ROCm/ROCR-Runtime commit: 518da7d4e7]
2016-08-31 14:54:20 -04:00
Andres Rodriguez 996bf3f9ca LICENSE: add X11/MIT license file
Change-Id: I2e95af843046896708bb7a116f7b03a0fa30a255


[ROCm/ROCR-Runtime commit: b1d2867b60]
2016-08-25 16:27:46 -04:00
Andres Rodriguez 45e0ca4e91 Makefile: remove 32bit thunk compilation by default
Compiling in 32bit mode is broken, and we don't have an intention on
restarting compatibility with 32bit apps.

Change-Id: I5524b5b63fe62e6026aa04d84c4510e290a86106


[ROCm/ROCR-Runtime commit: e0c77a38cb]
2016-08-25 16:27:19 -04:00
Jay Cornwall d5ecfae62f Refactor: Consolidate calls to hsaKmtAllocMemory
Route all device-visible system memory allocations through system_allocator.

Change-Id: I5e90a1bf491e432678a6d8ab1f9f3770734cbda1


[ROCm/ROCR-Runtime commit: 74f5aca93d]
2016-08-24 23:57:19 -04:00
Lan Xiao 742354161b libhsakmt: Add MarketingName and AMDName for all nodes - CPU & GPU
HSA thunk API is currently reporting engineering name to MarketingName
and returning NULL when querying for AMDName.

-Change current name reporting from MarketingName to AMDName.
-Use libpci to get MarketingName



Change-Id: I819a6de7b067a2e724a6695e7d800274b83a71f8
Signed-off-by: Lan Xiao <Lan.Xiao@amd.com>


[ROCm/ROCR-Runtime commit: 9cbbf30be7]
2016-08-23 10:49:27 -04:00
Sean Keely 7e2179da7b Update clang-format file to clang-format v3.8.
Format HSA v1.1 core updates.

Change-Id: I540b5c0e5b3ec7522b09c2e070167812b3f17769


[ROCm/ROCR-Runtime commit: 54f1311e01]
2016-08-23 05:50:28 -05:00
Kent Russell 2d604a8498 queues.c: Enforce CUMaskCount being a multiple of 32
The thunk spec requires that CUMaskCount be divisible by 32. Check this
and return INVALID_PARAMETER if it is not.

Change-Id: I4e0c8502d996d3da31224b817a5d4ff2c6054e13


[ROCm/ROCR-Runtime commit: 70b1b5b17e]
2016-08-23 06:16:39 -04:00
Jay Cornwall 53cd59e689 Propagate errors from hsaKmtOpenKFD back to hsa_init
Errors are otherwise silently ignored and hsa_init completes successfully.

Change-Id: Ib1b7dbd7a65d40f869cdbb2792fa97132873d3d7


[ROCm/ROCR-Runtime commit: 0c9f96cfa4]
2016-08-22 17:28:48 -05:00
Ramesh Errabolu 99998f1c87 Fix Image Create Func Decl in Hsa Api Table
Change-Id: I3862b3c78231fe24b6361167a78c6a8c7ad6ce0b


[ROCm/ROCR-Runtime commit: 31f64cdaab]
2016-08-22 15:43:48 -04:00
Konstantin Zhuravlyov e10cd184ef Update code object/isa/loader to hsa v1.1
- Includes Sean's latest changes
- Cleanups/improvements
- Fixes for few bugs that crept over from previous releases

Change-Id: I839dc4895bf13ebd0afc8843424387a9fef667b0


[ROCm/ROCR-Runtime commit: c2c993e0d8]
2016-08-22 15:03:23 -04:00
Jay Cornwall a9dff11965 Temporary fix for gfx801 hang with microcode #685
The PM4 IB must have executable permission.

A second part of this fix concerns robustness when this is not the case.
This remains under investigation.

This fix will shortly be cleaned up in a refactoring pass to consolidate
calls to hsaKmtAllocMemory.

Change-Id: I326fe01949a77669e0b07c3cadc9fd44b8065055


[ROCm/ROCR-Runtime commit: f71de56c79]
2016-08-19 18:05:40 -05:00
Yong Zhao f3e009e431 Fix a bug when mmap fails
EventId is needed in calling hsaKmtDestroyEvent() when mmap failed,
so we should move it ahead of mmap call.

Change-Id: I5f4288b953611799a02b0e988d6b2e48104466a0


[ROCm/ROCR-Runtime commit: 9c9bfa30c0]
2016-08-18 14:30:03 -04:00
James Edwards 21fe24647f Update Brig.h file.
Change-Id: Id74e0c6c0c1863c15bc9a47501dd7d156a9cfc99


[ROCm/ROCR-Runtime commit: 26c704a4ae]
2016-08-18 11:35:55 -05:00
Amber Lin 9bc0411400 Add performance counters for gfx803
Counter IDs in SQ_PERFCOUNTER0_SELECT are identical on gfx803 10 and
gfx803 11.

Change-Id: I5cfefd44b52989efd1d89311cf8c70c84ea2b230


[ROCm/ROCR-Runtime commit: 0b5c65a903]
2016-08-08 18:10:51 -04:00
Amber Lin 194f2083d2 Add gfx803 support
Add gfx803 and gfx80311 device IDs to the support

Change-Id: I16220fd811db102c02e5e0c5b82e40ec299877af


[ROCm/ROCR-Runtime commit: 876384305b]
2016-08-08 11:30:57 -04:00
Konstantin Zhuravlyov 700347b6bf [NFC] Cosmetic improvements:
- Doxygenify comments
  - Match order of implementation with order of declaration

Change-Id: I3c7e486c4dd3616f4b10b2f3e69532a4b5fb9e8e


[ROCm/ROCR-Runtime commit: 01dc3a8ff3]
2016-08-06 14:41:08 -04:00
Jay Cornwall eb8ab3730b Invalidate caches after allocating a code object
Due to a misinterpretation of the HSA specification the microcode has,
until now, been responsible for ensuring a coherent view of the
amd_kernel_code_t object when acquire_fence_scope is set to agent or system.
To correct this the runtime must instead assume this responsibility.

Introduce GpuAgentInt::InvalidateCodeCaches to perform this operation
on-demand. Invoke this after code object allocation. Extend the Queue
implementations to support PM4 command submission, through which the
PM4 command ACQUIRE_MEM can be submitted to perform cache invalidation.
Submit through a runtime-managed queue shared with the blit implementation.

This change depends on microcode support and this is checked against the
running version. Older microcode builds will perform cache invalidation
themselves, so it is acceptable for this change to do nothing in that case.

Change-Id: I268dd2b83af3decdd9ad07430a81df8a2ecb6bd2


[ROCm/ROCR-Runtime commit: f76577ae43]
2016-08-02 13:30:55 -04:00
Jay Cornwall a25aee96ca Add -O0 to CMake debug build configuration
The default optimization level may interfere with debugging.

Change-Id: Ie694ef35b05e4cf2bf4f68bc346e8d60a2d27bc8


[ROCm/ROCR-Runtime commit: d2a4629c55]
2016-07-31 19:28:13 -04:00
Jay Cornwall 70e07dcdfd Enable VM fault message by default on Linux
This option was disabled by default to address issues writing to stderr
in Windows applications. The lack of an error message for memory access
faults is confusing to users, however.

Enable the error message by default on Linux only.

Change-Id: I1f44ba42362f8874abdc7c8e63ddd54a855b5394


[ROCm/ROCR-Runtime commit: acc5f15e4c]
2016-07-30 10:10:14 -04:00