Commit Graph

25 Commits

Author SHA1 Message Date
Joseph Greathouse 55e55e78bb Fix maxSharedMemoryPerMultiProcessor attribute (#1927)
The maxSharedMemoryPerMultiProcessor attribute is meant to describe
the number of bytes of shared memory (LDS space in AMD terminology)
in each SM (CU in AMD terminology). For instance, on AMD GPUs this
is often 64KB per CU, and some Nvidia GPUs it's 96KB per SM.

This shared memory is a different address space from the normal
global memory. However, the current HIP-HCC properties fill this
in with a size that matches the totalGlboalMem property. This gives
a drastically too-high calculation for the amount of LDS space that
each CU has -- tens of GBs vs. 10s of KBs.

This patch fixes this by pulling the maxSharedMemoryPerMultiProcessor
property from the HSA pool that describes how much workgroup-local
space is available on each CU. The HSA runtime eventually pulls
this from the topology information about LDSSizeInKB, defined as
"Size of Local Data Store in Kilobytes per SIMD".

Previously, this HSA query was used to fill in the value of the
sharedMemPerBlock property. On today's AMD GPUs, we know that
the amount of LDS avaialble to the workgroup is identical to the
amount of LDS space in the CU. However, in the future this may
differ. As such, this patch changes around the order and fills
in the "PerMultiProcessor" property from the HSA query (since
what's what the query is defined to return), and then separately
fills in the "PerBlock" property as we know it.
2020-03-17 14:00:51 +05:30
Sarbojit2019 7257f23063 Added missing device prop fields into hipInfo sample (#1357)
* Added prop.integrated into hipInfo sample

* Added missing deviceProp fileds in hipInfo
2019-08-23 09:21:47 +00:00
chrispaquot 344d150bf8 Set device before processing each one (#1358) 2019-08-23 09:19:50 +00:00
Evgeny Mankov c9af61e9d1 [HIP][tests] Copyright notice update 2019-05-20 18:46:23 +03:00
Maneesh Gupta 1ba06f63c4 Apply .clangformat to all repo source files
Change-Id: I7e79c6058f0303f9a98911e3b7dd2e8596079344
2018-03-12 11:29:03 +05:30
Aditya Atluri 3e610ab0fe automate gcnarch detection
Change-Id: Ibbad22db136f7f5e2be84c82e9169298a144cc77
2017-06-29 12:01:40 -05:00
Ben Sander 43635f51dc Print limits on CUDA devices 2016-12-16 08:55:11 -06:00
Ben Sander 5832349e5e Print non-peers too
Change-Id: I2a6905edcdf144aa732ae3120c17780477f232ac
2016-11-04 06:34:07 -05:00
Maneesh Gupta 501778898f samples: Updated copyright header
Change-Id: I821f514ced5e34d492cb167b65d7273e26ed7b84
2016-10-15 23:05:04 +05:30
Maneesh Gupta 3a247efb2f samples: Updated to use new hip include path
Change-Id: I53a1385a17f13a997ea21d14315f15a3ad851dab
2016-10-04 22:21:10 +05:30
Ben Sander 1160cefc6d Sample improvements.
- Enable -O3 for hipDispatchLatency.
- Use nearly-null kernel to prevent it from being optimized away.
- Formatting for hipDispatchLatency.
- Formatting for hipInfo.
2016-09-22 13:05:47 -05:00
Ben Sander e4d1863ce8 fix peer query order 2016-04-11 07:58:59 -05:00
Ben Sander 83f0de7806 P2p checkpoint.
- set USE_PEER_TO_PEER=3 (requires HCC "am_memtracker_update_peers")
- when enabling peer, turn it on for previously allocated memory.
- hipDeviceCanAccessPeer is no longer self-ware (self does not qualify
  as a peer)
- device peerlist always includes self, so when we call allow_access
  we never remove self access.
- hipDeviceReset() removes old peer mappings.
2016-04-11 07:58:59 -05:00
Ben Sander d89539d40f Remove stray debug msgs, hipInfo don't print self as peer. 2016-04-11 07:58:58 -05:00
Ben Sander 0ac41ad143 Print peers in hipConfig.
Also include peer APIs in vim hilighting.
2016-04-11 07:58:58 -05:00
Aditya Atluri d3ba2b9782 corrected hipDeviceGetProperties to hipGetDeviceProperties - not docs 2016-03-06 08:31:04 -06:00
Ben Sander ff66ef0779 fixes for titan platform 2016-02-26 05:25:30 -06:00
Evgeny Mankov 57e212606d 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).
2016-02-25 23:44:39 +03:00
Evgeny Mankov 833c9e52ad Guard #ifdef USE_ROCR_20 is added for ROCR_20 device properties (memoryClockRate, memoryBusWidth)
By default isn't defined.
To add ROCR_20 support HIP have to be compiled as follows: make CXX_DEFINES+=-DUSE_ROCR_20
2016-02-19 13:27:03 +03:00
Evgeny Mankov 1c19dbb807 Device property memoryBusWidth implementation.
+ Device property memoryBusWidth is added to hipDeviceProp_t struct.
+ Device attribute hipDeviceAttributeMemoryBusWidth is added to hipDeviceAttribute_t struct.
+ Tests update.
2016-02-18 18:15:01 +03:00
Evgeny Mankov 5ea8543d2e Device property memoryClockRate implementation.
+ Device property memoryClockRate is added to hipDeviceProp_t struct.
+ Device attribute hipDeviceAttributeMemoryClockRate is added to hipDeviceAttribute_t struct.
+ Tests update.
+ Rename hipDevAttrConcurrentKernels to hipDeviceAttributeConcurrentKernels.
2016-02-18 17:25:28 +03:00
Evgeny Mankov 5b05a9fef1 hipInfo sample update with new Device Properties. 2016-02-18 15:08:55 +03:00
Evgeny Mankov 072d649d8d Formatting, no functional changes. 2016-02-15 13:16:05 +03:00
Aditya Avinash Atluri 2d57a3dd0b Corrected compilation error 2016-01-26 10:40:06 -05:00
Ben Sander f38e63ff18 Initial commit for GPUOpen Launch 2016-01-26 20:14:33 -06:00