Commit Graph

13501 Commits

Author SHA1 Message Date
Chris Freehill 47fdfa4c7e Add support for gRPC authenticated communications
Also, make a few namespace corrections and some minor refactoring.

Change-Id: Iedcaf6b43cb7576bc11dfefe980abd190c838831
2020-08-17 14:07:25 -05:00
Bill(Shuzhou) Liu 020f6939f7 SWDEV-209060 - Create the Skeleton RDC CLI and daemon
Create the skeleton implementation of rdc_client.so and rdci. Modify current rdcd to
integrate the RDC API service:

rdc.proto is changed to add a new RdcAPI service which defined the interfaces for the RDC API.

RdcStandaloneHandler.cpp is added to send the request using gRPC to the rdcd. It is built into
the rdc_client.so

rdci.cc, RdciDisCoverySubSystem.cc and RdciSubSystem.cc are added to implement skeleton rdci.
Currently, the discovery subsystem is supported.

rdc_api_service.cc is added to the server as a skeleton to implement the RdcAPI service. Currently,
only discovery API is implemented. Note: we disabled the rdc_rsmi_service, which will be removed
in the future. The original rdc_client.so is renamed to rdc_client_smi.so which should also be
removed in the future.

Add the instruction how to run the rdcd and rdci in the build folder in the README.md.

Change-Id: Id232f9f83787e5812d4a295dc8cf0daa7728b06c
2020-08-17 14:07:25 -05:00
Bill(Shuzhou) Liu 1ff1c7b617 SWDEV-223878 - Add cache manager and watch table to skeleton rdc_lib
Support cache manager and watch table in rdc_lib

RdcCacheManagerImpl.cc is added to implement cache of metrics. Currently, only
integer mertics are supported. The cache manager provids function to retrieve the
latest and history metrics from cache. It also provides interfaces to update and evict the cache.

RdcWatchTableImpl.cc is added to implement watch and unwatch fields. It uses the
field settings to control how frequently a field needs to be updated. We have a preliminarily
performance optimization for this class as it may be called very frequently.

RdcMetricsUpdaterImpl.cc is added to run the update at background thread when
RDC_OPERATION_MODE_AUTO is set.

After this code change, the rdcd/rdci should be able to implement basic discovery, group and dmon
function. The job management function is not implemented in the skeleton rdc_lib yet.

Change-Id: I26cff8c2ec85d1ad8e7df24c66b02f0060838d37
2020-08-17 14:07:25 -05:00
Bill(Shuzhou) Liu a5f063f8b3 Support discovery and group management in rdc_lib
The rdc.h is modified for new discovery and grouping APIs.

The RdcGroupSettingsImpl.cc is added to implement the GPU group and
the field group management.

The RdcMetricFetcherImpl.cc is added to fetch the metrics from
rocm_smi_lib. Currently, only support power, memory, GPU utilization,
temperature, GPU clock, total device and device name.

A new example field_value_example.cc is added to demo how to record
the fields and retrieve data from cache.

Change-Id: I57acfa048fe9b3d848e2d441e768b3a63ccae3f8
2020-08-17 14:07:25 -05:00
Bill(Shuzhou) Liu 85006053ed Create the rdc.h header file and librdc_bootstrap.so
The rdc.h is the only header file will be provided to the user.
The inital version only includes the data structure and function
required for the job stats example.

The example folder has one example demonstrated how to use the API
to collect the job summary stats.

The RdcBootStrap.cc will dynamically load different libraries when user
select either the standalone or embbed mode. We also created a
dummy RdcEmbeddedHandler.cc for librdc.so.

In order to run the example after build, it needs to specify the
LD_LIBRARY_PATH. Assume current folder is the build folder:
LD_LIBRARY_PATH=$PWD/rdc_libs $PWD/example/jobstats

The folder is structured in following ways:
example
include
    - rdc - rdc.h (the only header file exposed to the user)
    - rdc_libs
          - impl
rdc_libs
    - boostrap
         - src
    - rdc
         - src
    - rdc_client
         - src
    - rdc_server
         - src

Change-Id: Ia386ddf4cabcb2dc4fe82de6464ca0619cb3d959
2020-08-17 14:07:25 -05:00
Chris Freehill 5cc498c6aa Make rdcd run as user "rdc"
The rdc account will be created on installation if it does
not already exist. It will be a system account with no
home directory.

rdcd will be started as a systemd service, but change to
user "rdc". The rdc user will drop all priviliges except
CAP_DAC_OVERRIDE, permitted. This means the default mode
will have no special privileges, but have the ability to
gain write access (e.g., to sysfs) when needed.

rdc tests were being inadvertantly added to the
installation. This was adversely impacting the new
functionality, so it was corrected in this commit.

Also included are a few small formatting changes.

Change-Id: I9c6bb132fee28119fd3960594dfb97bd2e7b282a
2020-08-17 14:07:25 -05:00
Chris Freehill 4729c47866 Add read fan values and associated tests
Change-Id: I89322e93d5f3110adace15e5a576f00d4934be79
2020-08-17 14:07:25 -05:00
Chris Freehill 02c6d3fb4d Add use of namespaces
Change-Id: I962eb808b3b874d1c3bf4cb418bf36952f88e3e2
2020-08-17 14:07:25 -05:00
Chris Freehill ca4344f5fa Add Google test based tests.
Initial testing include an "id test", which really just a
template test at this point, and a temperature sensor test.

The google test code is included in this commit. It will
eventually be taken out and replaced with a pull from a google
external repo.

Change-Id: I591818a9c169f4654fc8d8f17cf648f227d72545
2020-08-17 14:06:56 -05:00
Chris Freehill 7be97ec2aa Clean up comments for rsmitst
Change-Id: Iea5322a5fd3bffe77557fa2cecbce70716e1258c
2020-08-17 11:48:07 -05:00
Evgeny 5511a969e7 passing filename to mem_manager dump
Change-Id: I95cb99a69c4d2f8e55a063388d46a7f7b196f6bd
2020-08-15 04:01:08 -04:00
Evgeny 4e691bd307 passing filename to mem_manager dump
Change-Id: I95cb99a69c4d2f8e55a063388d46a7f7b196f6bd


[ROCm/rocprofiler commit: 5511a969e7]
2020-08-15 04:01:08 -04:00
Evgeny a098665435 incrementing API version because of HIP API changes
Change-Id: I19e42ca75d8050b44b1cdf70cac7dfdff1ab5d57


[ROCm/roctracer commit: 2f608e067a]
2020-08-15 03:25:57 -04:00
Evgeny 2f608e067a incrementing API version because of HIP API changes
Change-Id: I19e42ca75d8050b44b1cdf70cac7dfdff1ab5d57
2020-08-15 03:25:57 -04:00
Divya Shikre 2e8dc4f2a9 Adding Sdma Usage to showpids
Signed-off-by: Divya Shikre <DivyaUday.Shikre@amd.com
Change-Id: I72a9e1adc61eba382f1ac17c8e50b2a8bd6d6898
2020-08-14 12:12:34 -04:00
Kent Russell 04f6b9e16b Fix GCC warning regarding strncpy in CPU info
strlen(src) should not be used as the length in strncpy. Use memcpy
since we know the length of the string, and ensure that we
NULL-terminate regardless of length

Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I21cc6d106510c69464e7ac9d3fc7da3a1e6d1a68
2020-08-14 07:10:19 -04:00
Divya Shikre 4032898d1b Adding Hw Topology option to ROCm SMI Python CLI
Signed-off-by: Divya Shikre <DivyaUday.Shikre@amd.com
Change-Id: Ic46334567703f705e38b3a8b4a08ab388c749251
2020-08-13 18:51:21 -04:00
Aaron Enye Shi bc9053bf35 Add --rocm-path to MatrixTranspose test
Change-Id: Ifd5859b90bf8eb2aff5318000cac60dc1c82e0b1


[ROCm/roctracer commit: 28e5d02888]
2020-08-13 13:15:17 -04:00
Aaron Enye Shi 28e5d02888 Add --rocm-path to MatrixTranspose test
Change-Id: Ifd5859b90bf8eb2aff5318000cac60dc1c82e0b1
2020-08-13 13:15:17 -04:00
Kent Russell 6085baa2dc Fix typo lager->larger
Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I188d629b6441e5ebb14f104869e871d003c78c9d
2020-08-13 06:34:42 -04:00
Ori Messinger b568270f55 ROCm SMI Python CLI: properly cast pid to int
The purpose of this patch is to fix --showpids and --showpidgpus functionality.
When pid is passed into a LIB function, it must be cast to int first.

Change-Id: I5cb7ac41052abeefff0dedf2384c4bb3c8d577a3
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
2020-08-13 04:34:08 -04:00
Sean Keely 1d919adc75 Add gfx1030 to image blit kernel build list.
Change-Id: I2ddb6a595bb7ca5f6a94f38f8ecc2e40831c52fd
2020-08-12 16:38:39 -05:00
Sean Keely 78e5c06ea8 Switch to release e_flags id for gfx1030.
Change-Id: I51c9ecdf78d6ec56ccc70ca5777bb011db35fda3
2020-08-12 16:38:16 -05:00
Sean Keely dc7e5e7e46 Add xnack isa recognition to gfx1030.
Change-Id: I99301a62f1952b6a3cc548272f4129ad8c0542da
2020-08-12 16:34:17 -05:00
Sean Keely ddfe07871a Add ELF types for gfx1030.
Change-Id: If875534d698da9840e47c380d5630b6dd742ab0c
2020-08-12 16:34:17 -05:00
Chris Freehill e702531b40 Add gfx1030 support
Change-Id: I4bccc731ba802480925f98c6c42593503bf9b98d
2020-08-12 16:34:10 -05:00
Evgeny 8a8f498468 postprocessing optimisation
Change-Id: I8091f293a80a8c546432932f209327ce97769c98
2020-08-12 13:00:33 -04:00
Evgeny 71a89320ef postprocessing optimisation
Change-Id: I8091f293a80a8c546432932f209327ce97769c98


[ROCm/rocprofiler commit: 8a8f498468]
2020-08-12 13:00:33 -04:00
Evgeny Shcherbakov de49d33fed Merge "roctx range api py script changes" into amd-master 2020-08-12 11:19:20 -04:00
Evgeny Shcherbakov b1dd8a9d11 Merge "roctx range api py script changes" into amd-master
[ROCm/rocprofiler commit: de49d33fed]
2020-08-12 11:19:20 -04:00
Rachida Kebichi 13e1208711 Merge "Added roctxRangeStart and roctxRangeEnd" into amd-master
[ROCm/roctracer commit: d3406bdb7b]
2020-08-12 10:32:29 -04:00
Rachida Kebichi d3406bdb7b Merge "Added roctxRangeStart and roctxRangeEnd" into amd-master 2020-08-12 10:32:29 -04:00
Rachida Kebichi 86954dba1f Added roctxRangeStart and roctxRangeEnd
Change-Id: Id7f81c5a7d7f231c8f0e2323d31c37c827687189

Added roctxRangeStart and roctxRangeEnd

Change-Id: Id7f81c5a7d7f231c8f0e2323d31c37c827687189


[ROCm/roctracer commit: da17a158f8]
2020-08-11 17:28:03 -04:00
Rachida Kebichi da17a158f8 Added roctxRangeStart and roctxRangeEnd
Change-Id: Id7f81c5a7d7f231c8f0e2323d31c37c827687189

Added roctxRangeStart and roctxRangeEnd

Change-Id: Id7f81c5a7d7f231c8f0e2323d31c37c827687189
2020-08-11 17:28:03 -04:00
Ramesh Errabolu 3444da7df6 IPC child process should exit and not return
Change-Id: I9b01f473eea1b42cf65c042f89fcf24bfd2ffc0d
2020-08-10 11:19:21 -05:00
Evgeny 71b1da0eab roctx range api py script changes
Change-Id: I1ee994e00fa0283e129f05e2745c0c6caf8aa6b5
2020-08-07 16:53:24 -04:00
Evgeny 3374fe1705 roctx range api py script changes
Change-Id: I1ee994e00fa0283e129f05e2745c0c6caf8aa6b5


[ROCm/rocprofiler commit: 71b1da0eab]
2020-08-07 16:53:24 -04:00
Chris Freehill da64e284dc Move README back to root
README should be at root to display in github main page.
Also, removed paragraph related to API changes early
in development.

Change-Id: I2e92573a31d3caa7790364de9356c6d7e7be553d
2020-08-06 09:27:48 -05:00
Chris Freehill 0468aa4971 Correct event counter documentation example
Change-Id: I74c41de8e4aacbd42d9e156983369eb76bec3367
2020-08-06 08:49:21 -05:00
Evgeny 8e06ec8c18 trace buffer initializatino fix
Change-Id: Ibb4b3e939d74b776dbdd7ae0c2af02535974abd8


[ROCm/roctracer commit: f027cf1e22]
2020-08-06 03:08:33 -05:00
Evgeny f027cf1e22 trace buffer initializatino fix
Change-Id: Ibb4b3e939d74b776dbdd7ae0c2af02535974abd8
2020-08-06 03:08:33 -05:00
Xianwei Zhang e26210d9d9 concurrent: improve concurrent profiling
This patch adds barrier packets, together with extra signals,
to enforce the completion order of read packets w.r.t dispatch.
And, PmcStopper is added to stop the profiling finally.

Change-Id: I8e8d3a41d86e42be1d9e5afd44c247be876cf1a5
2020-08-05 18:20:14 -04:00
Xianwei Zhang bc27ae1adf concurrent: improve concurrent profiling
This patch adds barrier packets, together with extra signals,
to enforce the completion order of read packets w.r.t dispatch.
And, PmcStopper is added to stop the profiling finally.

Change-Id: I8e8d3a41d86e42be1d9e5afd44c247be876cf1a5


[ROCm/rocprofiler commit: e26210d9d9]
2020-08-05 18:20:14 -04:00
Ori Messinger 2b909252ac ROCm SMI Python CLI
This tool acts as a command line interface for manipulating
and monitoring the Radeon Open Compute Kernel, similar to the
rocm_smi.py python tool.

The purpose of this commit is for the initial upload and cleanup
of the (incomplete) rocmSmiLib_cli.py and rsmiBindings.py files.

In the near future, this tool should have full feature parity with
rocm_smi.py by relying on the available rocm_smi_lib functions.

Change-Id: Ifbafd5118c15c68c240e3c83a47d2690a27c9353
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
2020-08-05 12:38:11 -04:00
Evgeny b3efbaf280 roctracer static linking
Change-Id: I4df98c6d9991a3a58e2f646fc0c8fe8f104a105d


[ROCm/roctracer commit: a9048f33a8]
2020-08-05 02:26:40 -05:00
Evgeny a9048f33a8 roctracer static linking
Change-Id: I4df98c6d9991a3a58e2f646fc0c8fe8f104a105d
2020-08-05 02:26:40 -05:00
Philip Yang 9e9771a7d9 libhsakmt: always use render fd to create CPU mapping
The option to use kfd_fd for cpu mapping is for very old broken KFD
version, it is not used in upstreaming process. This causes issue when
multiple process uses shared system memory because the GTT address is
over 40 bits.

Change to always use render node fd to create CPU mapping.

Change-Id: Id7e7b2a2e2f13c6e62c5de170589abfff4d456b0
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2020-08-04 12:54:57 -04:00
Evgeny 80747de208 optimization mechanism fix: correct tracker handler; kernel name query on completion;
Change-Id: I14da152b4ac3c7d8fd1af2f54e9d71f834071622
2020-08-03 23:34:49 -05:00
Evgeny a331990ee4 optimization mechanism fix: correct tracker handler; kernel name query on completion;
Change-Id: I14da152b4ac3c7d8fd1af2f54e9d71f834071622


[ROCm/rocprofiler commit: 80747de208]
2020-08-03 23:34:49 -05:00
Evgeny bd1165a371 enabling hipIpcEventHandle_t
Change-Id: Iaf973567298d5ef8450e14e869b5f837e0620022


[ROCm/roctracer commit: ac59f349d4]
2020-08-03 13:04:05 -05:00