Skip to content

Commit 48b7db1

Browse files
authored
[rocWMMA] Cherry picks for ROCm 7.2 (#2842)
1 parent acf2745 commit 48b7db1

11 files changed

Lines changed: 82 additions & 32 deletions

File tree

CHANGELOG.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,30 @@
33
Documentation for rocWMMA is available at
44
[https://rocm.docs.amd.com/projects/rocWMMA/en/latest](https://rocm.docs.amd.com/projects/rocWMMA/en/latest).
55

6-
## (Unreleased) rocWMMA 2.1.0 for ROCm 7.1.0
6+
## (Unreleased) rocWMMA 2.2.0 for ROCm 7.2.0
7+
8+
### Added
9+
10+
* Added sample `perf_i8gemm` to demonstrate `int8_t` as matrix input data type
11+
* Added support for the gfx1150 target
12+
13+
### Changed
14+
15+
* Removed unnecessary const keyword to avoid compiler warnings
16+
* rocWMMA has been moved into the new rocm-libraries "monorepo" repository (https://github.com/ROCm/rocm-libraries). This repository consolidates a number of separate ROCm libraries and shared components.
17+
* The repository migration requires a few changes to the CMake configuration of rocWMMA
18+
* The repository migration rquired the GTest dependency to be updated to v1.16.0
19+
20+
### Resolved issues
21+
22+
* Skip invalid test configurations when using 'register file' LDS mapping
23+
* Ensured transform functions in samples are only available on the device
24+
25+
## rocWMMA 2.1.0 for ROCm 7.1.1
726

827
### Added
928

1029
* Added more unit tests to increase the code coverage.
11-
* Added sample `perf_i8gemm` to demonstrate `int8_t` as matrix input data type.
1230

1331
### Changed
1432

CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ message(STATUS "CMake version: ${CMAKE_VERSION}")
3030
if(NOT WIN32)
3131
if(CMAKE_GENERATOR STREQUAL "Ninja")
3232
message(STATUS "The CMake generator is Ninja.")
33+
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
3334
else()
3435
message(WARNING "The CMake generator is not Ninja. Ninja is preferred over Make.")
3536
endif()
@@ -87,7 +88,7 @@ include(ROCMCheckTargetIds)
8788
include(ROCMClients)
8889

8990
# Versioning via rocm-cmake
90-
set ( VERSION_STRING "2.1.0" )
91+
set ( VERSION_STRING "2.2.0" )
9192
rocm_setup_version( VERSION ${VERSION_STRING} )
9293

9394
# configure a header file to pass the CMake version settings to the source

CONTRIBUTING.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ External contributions and feedback are welcome for rocWMMA. Please see the foll
1010

1111
## Issue Discussion ##
1212

13-
Please use the [GitHub Issues](https://github.com/ROCm/rocWMMA/issues) tab to notify us of issues.
13+
Please use the [GitHub Issues](https://github.com/ROCm/rocm-libraries/issues) tab to notify us of issues.
1414

1515
* Use your best judgement for issue creation. If your issue is already listed, upvote the existing issue and
1616
comment or post to provide additional details, such as how you reproduced this issue.
@@ -37,13 +37,17 @@ New issues should use the following templates:
3737
- Expected Behavior:
3838
- Actual Behavior:
3939
3. Any additional information:
40+
4. Add the `project: rocWMMA` tag
41+
5. Specify 'rocWMMA' in the 'ROCm Component' field, if available.
4042
* **Enhancement Requests**
4143
+ Any proposed enhancements to rocWMMA should be thoroughly documented with the template below.
4244
1. Description: ***Please be clear and concise***
4345
2. Value and Motivation
4446
- Feature and/or Functionalities Enabled:
4547
- Any Alternatives
4648
3. Any additional information:
49+
4. Add the `project: rocWMMA` tag
50+
5. Specify 'rocWMMA' in the 'ROCm Component' field, if available.
4751

4852
## Acceptance Criteria ##
4953

@@ -65,7 +69,7 @@ Contributors wishing to submit new features for rocWMMA should follow the guidel
6569
- WMMA Porting
6670
* Developers wishing to implement gap closures with nvcuda::wmma may suggest additional features to do so
6771

68-
All new features and fixes should also tie into the rocWMMA [GitHub Issues](https://github.com/ROCm/rocWMMA/issues) tab:
72+
All new features and fixes should also tie into the rocWMMA [GitHub Issues](https://github.com/ROCm/rocm-libraries/issues) tab:
6973

7074
- **Enhancements**
7175
+ Any implementations of pre-filed enhancement requests should clearly link to the original issue.
@@ -80,7 +84,7 @@ Exceptions to these criteria will be handled on a case-by-case basis, and should
8084

8185
## Code Structure ##
8286

83-
The organization of the rocWMMA library is explained in detail in the [Programmers Guide](https://github.com/ROCm/rocWMMA/blob/develop/docs/programmers-guide.rst)
87+
The organization of the rocWMMA library is explained in detail in the [Programmers Guide](https://github.com/ROCm/rocm-libraries/blob/develop/projects/rocwmma/docs/conceptual/programmers-guide.rst).
8488

8589
## Coding Style ##
8690

@@ -191,7 +195,7 @@ rocWMMA has a set of required deliverables for every pull request that are as fo
191195
kernels.
192196
193197
2. **API Documentation**:
194-
- Any new outward facing rocWMMA API functions must be properly documented and included in the [API Reference Guide](https://github.com/ROCm/rocWMMA/blob/develop/docs/api-reference-guide.rst).
198+
- Any new outward facing rocWMMA API functions must be properly documented and included in the [API Reference Guide](https://github.com/ROCm/rocm-libraries/blob/develop/projects/rocwmma/docs/api-reference/api-reference-guide.rst).
195199
196200
3. **Type Support**:
197201
- All features introduced to rocWMMA must maintain support for the following types:

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ performant GEMMs, DLRM, GEMV and hipRTC integration.
1414
The test suite includes validation and benchmarking projects that focus on unit testing, GEMMs and DLRM.
1515

1616
> [!NOTE]
17-
> The published rocWMMA documentation is available at [rocWMMA](https://rocm.docs.amd.com/projects/rocWMMA/en/latest/index.html) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the rocWMMA/docs folder of this repository. As with all ROCm projects, the documentation is open source. For more information, see [Contribute to ROCm documentation](https://rocm.docs.amd.com/en/latest/contribute/contributing.html).
17+
> The published rocWMMA documentation is available at [rocWMMA](https://rocm.docs.amd.com/projects/rocWMMA/en/latest/index.html) in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the `projects/rocwmma/docs` folder of this repository. As with all ROCm projects, the documentation is open source. For more information, see [Contribute to ROCm documentation](https://rocm.docs.amd.com/en/latest/contribute/contributing.html).
1818
1919

2020
## Requirements
@@ -90,7 +90,7 @@ pip3 install -r sphinx/requirements.txt
9090
python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
9191
```
9292

93-
The HTML documentation can be viewed in your browser by opening docs/_build/html/index.html result.
93+
The HTML documentation can be viewed in your browser by opening the `docs/_build/html/index.html` result.
9494

9595
### Pdf
9696

@@ -118,4 +118,4 @@ The latest official documentation for rocWMMA is available at:
118118

119119
## Contributing to the rocWMMA Library
120120

121-
Community collaboration is encouraged! If you are considering contributing, please follow the [rocWMMA Contribution Guide](https://github.com/ROCm/rocWMMA/blob/develop/CONTRIBUTING.md) to get started.
121+
Community collaboration is encouraged! If you are considering contributing, please follow the [rocWMMA Contribution Guide](https://github.com/ROCm/rocm-libraries/blob/develop/projects/rocwmma/CONTRIBUTING.md) to get started.

docs/api-reference/api-reference-guide.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,31 +294,31 @@ col_major
294294

295295

296296
default_schedule
297-
^^^^^^^^^
297+
^^^^^^^^^^^^^^^^
298298

299299
.. doxygentypedef:: rocwmma::fragment_scheduler::default_schedule
300300

301301

302302
coop_row_major_2d
303-
^^^^^^^^^
303+
^^^^^^^^^^^^^^^^^
304304

305305
.. doxygentypedef:: rocwmma::fragment_scheduler::coop_row_major_2d
306306

307307

308308
coop_col_major_2d
309-
^^^^^^^^^
309+
^^^^^^^^^^^^^^^^^
310310

311311
.. doxygentypedef:: rocwmma::fragment_scheduler::coop_col_major_2d
312312

313313

314314
coop_row_slice_2d
315-
^^^^^^^^^
315+
^^^^^^^^^^^^^^^^^
316316

317317
.. doxygentypedef:: rocwmma::fragment_scheduler::coop_row_slice_2d
318318

319319

320320
coop_col_slice_2d
321-
^^^^^^^^^
321+
^^^^^^^^^^^^^^^^^
322322

323323
.. doxygentypedef:: rocwmma::fragment_scheduler::coop_col_slice_2d
324324

@@ -379,8 +379,8 @@ rocWMMA transforms API functions
379379
Sample programs
380380
----------------
381381

382-
A sample demonstrating the use of rocWMMA functions ``load_matrix_sync``, ``store_matrix_sync``, ``fill_fragment``, and ``mma_sync`` is available `here <https://github.com/ROCm/rocWMMA/blob/develop/samples/simple_hgemm.cpp>`_.
383-
For more sample programs, refer to the `samples directory <https://github.com/ROCm/rocWMMA/tree/develop/samples>`_.
382+
A sample demonstrating the use of rocWMMA functions ``load_matrix_sync``, ``store_matrix_sync``, ``fill_fragment``, and ``mma_sync`` is available `here <https://github.com/ROCm/rocm-libraries/blob/develop/projects/rocwmma/samples/simple_hgemm.cpp>`_.
383+
For more sample programs, refer to the `samples directory <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma/samples>`_.
384384

385385
Emulation tests
386386
---------------

docs/conceptual/programmers-guide.rst

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ Infrastructure
1717

1818
- Doxygen and Sphinx are used to generate the project's documentation.
1919
- Jenkins is used to automate Continuous Integration (CI) testing, with configurations stored in the ``.jenkins`` folder.
20-
- rocWMMA is hosted and maintained by AMD on `GitHub <https://github.com/ROCm/rocWMMA>`_.
20+
- rocWMMA is hosted and maintained by AMD on `GitHub <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma>`_.
21+
22+
.. note::
23+
24+
The rocWMMA repository for ROCm 7.1.1 and earlier is located at `<https://github.com/ROCm/rocWMMA>`_.
25+
2126
- The rocWMMA project is organized and configured using ``CMake``, with ``CMakeLists.txt`` files in the root of each directory.
2227
- ``clang-format`` is used to format C++ code. ``.githooks/install`` ensures that a clang-format pass will run on each committed file.
2328
- ``GTest`` is used to implement test suite organization and execution.
@@ -31,7 +36,7 @@ hipRTC support
3136
The HIP runtime compilation (hipRTC) environment enables on-the-fly runtime compilation, loading, and execution of device code on AMD GPUs. The rocWMMA library is compatible with hipRTC, so it can be used for runtime-generated kernels.
3237
A simple GEMM sample is included to demonstrate compatibility.
3338

34-
For more information, refer to the `HIP API Reference <https://rocm.docs.amd.com/projects/HIP/en/latest/doxygen/html/index.html>`_
39+
For more information, refer to the `HIP API Reference <https://rocm.docs.amd.com/projects/HIP/en/latest/index.html>`_
3540

3641
--------------------------------
3742
Design concepts
@@ -228,4 +233,4 @@ The ``test`` directory contains the following test code support:
228233
Contributing
229234
^^^^^^^^^^^^
230235

231-
To contribute to the project, see `Contributing to rocWMMA <https://github.com/ROCm/rocWMMA/blob/develop/CONTRIBUTING.md>`_.
236+
To contribute to the project, see `Contributing to rocWMMA <https://github.com/ROCm/rocm-libraries/blob/develop/projects/rocwmma/CONTRIBUTING.md>`_.

docs/index.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ rocWMMA is a C++ header library for accelerating mixed-precision matrix multiply
1212
It leverages specialized GPU matrix cores on the latest AMD discrete GPUs.
1313
For more information, see :doc:`What is rocWMMA? <./what-is-rocwmma>`
1414

15-
The rocWMMA public repository is located at `<https://github.com/ROCm/rocWMMA>`_.
15+
The rocWMMA public repository is located at `<https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma>`_.
16+
17+
.. note::
18+
19+
The rocWMMA repository for ROCm 7.1.1 and earlier is located at `<https://github.com/ROCm/rocWMMA>`_.
1620

1721
.. grid:: 2
1822
:gutter: 3
@@ -28,12 +32,12 @@ The rocWMMA public repository is located at `<https://github.com/ROCm/rocWMMA>`_
2832

2933
.. grid-item-card:: Examples
3034

31-
* `Samples <https://github.com/ROCm/rocWMMA/tree/develop/samples>`_
35+
* `Samples <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma/samples>`_
3236

3337
.. grid-item-card:: API reference
3438

3539
* :doc:`API reference guide <./api-reference/api-reference-guide>`
3640

3741
To contribute to the documentation, see `Contributing to ROCm <https://rocm.docs.amd.com/en/latest/contribute/contributing.html>`_.
3842

39-
You can find licensing information on the `Licensing <https://rocm.docs.amd.com/en/latest/about/license.html>`_ page.
43+
You can find licensing information on the `Licensing <https://rocm.docs.amd.com/en/latest/about/license.html>`_ page.

docs/install/installation.rst

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ The following dependencies are required:
111111
* `ROCm <https://github.com/ROCm/ROCm>`_ (Version 6.4 or later)
112112
* `CMake <https://cmake.org/>`_ (Version 3.14 or later)
113113
* `rocm-cmake <https://github.com/ROCm/rocm-cmake>`_ (Version 0.8.0 or later)
114-
* `HIP runtime <https://github.com/ROCm/hip>`_ (Version 6.4.0 or later) (Or the ROCm hip-runtime-amd package)
114+
* `HIP runtime <https://github.com/ROCm/rocm-systems/tree/develop/projects/hip>`_ (Version 6.4.0 or later) (Or the ROCm hip-runtime-amd package)
115115
* `LLVM OpenMP <https://openmp.llvm.org/>`_ runtime dev package (Version 10.0 or later) (Also available as the ROCm rocm-llvm-dev package)
116-
* (Optional, only required to use rocBLAS for validation) `rocBLAS <https://github.com/ROCm/rocBLAS>`_ (Version 4.3.0 for ROCm 6.3 or later) (Or the ROCm rocblas and rocblas-dev packages).
116+
* (Optional, only required to use rocBLAS for validation) `rocBLAS <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocblas>`_ (Version 4.3.0 for ROCm 6.3 or later) (Or the ROCm rocblas and rocblas-dev packages).
117117

118118
.. <!-- spellcheck-enable -->
119119
@@ -124,9 +124,13 @@ The following dependencies are required:
124124
Downloading rocWMMA
125125
-------------------------------------------
126126

127-
The rocWMMA source code is available from the `rocWMMA GitHub <https://github.com/ROCm/rocWMMA>`_.
127+
The rocWMMA source code is available from the `rocWMMA GitHub <https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma>`_.
128128
ROCm version 6.4 or later is required.
129129

130+
.. note::
131+
132+
The rocWMMA repository for ROCm 7.1.1 and earlier is located at `<https://github.com/ROCm/rocWMMA>`_.
133+
130134
To verify the ROCm version installed on an Ubuntu system, use this command:
131135

132136
.. code-block:: shell
@@ -146,10 +150,22 @@ The rocWMMA GitHub repository has branches with names like ``rocm-major.minor.x`
146150
where ``major`` and ``minor`` are the same as for the ROCm version.
147151
To download rocWMMA on ROCm version ``x.y``, use this command:
148152

149-
.. code-block:: shell
153+
.. tab-set::
154+
.. tab-item:: ROCm 7.2.0 and later
155+
156+
.. code-block:: shell
157+
158+
git clone -b release/rocm-rel-x.y https://github.com/ROCm/rocm-libraries.git
159+
cd projects/rocwmma
160+
161+
Alternatively, you can use ``sparse-checkout`` to clone only the rocWMMA project from the ``rocm-libraries`` monorepo. For more information, see `Contributing to the ROCm Libraries <https://github.com/ROCm/rocm-libraries/blob/develop/CONTRIBUTING.md#option-b-clone-the-monorepo-with-sparse-checkout>`_.
162+
163+
.. tab-item:: ROCm 7.1.1 and prior
164+
165+
.. code-block:: shell
150166
151-
git clone -b release/rocm-rel-x.y https://github.com/ROCm/rocWMMA.git
152-
cd rocWMMA
167+
git clone -b release/rocm-rel-x.y https://github.com/ROCm/rocWMMA.git
168+
cd rocWMMA
153169
154170
Replace ``x.y`` in the above command with the version of ROCm installed on your machine.
155171
For example, if you have ROCm 6.0 installed, then replace ``release/rocm-rel-x.y`` with ``release/rocm-rel-6.0``.

docs/sphinx/_toc.yml.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ subtrees:
2121

2222
- caption: Examples
2323
entries:
24-
- url: https://github.com/ROCm/rocWMMA/tree/develop/samples
24+
- url: https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocwmma/samples
2525
title: Samples
2626

2727
- caption: API reference

samples/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ function(add_rocwmma_sample TEST_TARGET TEST_SOURCE)
4242
add_executable(${TEST_TARGET} ${TEST_SOURCE})
4343
target_link_libraries(${TEST_TARGET} OpenMP::OpenMP_CXX "-L${HIP_CLANG_ROOT}/lib")
4444
if(UNIX)
45-
target_link_libraries(${TEST_TARGET} "-Wl,-rpath=$ORIGIN/../llvm/lib" "-fno-rtlib-add-rpath")
45+
set_target_properties(${TEST_TARGET} PROPERTIES INSTALL_RPATH "\$ORIGIN/../llvm/lib")
46+
target_link_libraries(${TEST_TARGET} "-fno-rtlib-add-rpath")
4647
endif()
4748
target_link_libraries(${TEST_TARGET} rocwmma hiprtc::hiprtc)
4849
target_include_directories(${TEST_TARGET} PRIVATE

0 commit comments

Comments
 (0)