Skip to content

Commit 53431b0

Browse files
committed
Promote till commit 'efce2f77c4b5a1b9a2c16f33b7b9062faf09b007'
2 parents 1a9c8df + efce2f7 commit 53431b0

File tree

125 files changed

+4493
-1879
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+4493
-1879
lines changed

.azuredevops/rocm-ci.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,27 @@ resources:
88
type: github
99
endpoint: ROCm
1010
name: ROCm/HIP
11-
ref: develop
11+
ref: amd-staging
1212
- repository: hipother_repo
1313
type: github
1414
endpoint: ROCm
1515
name: ROCm/hipother
16-
ref: develop
16+
ref: amd-staging
1717
pipelines:
1818
- pipeline: hip_pipeline
1919
source: \HIP
2020
trigger:
2121
branches:
2222
include:
23-
- develop
23+
- amd-staging
24+
- amd-mainline
2425
- pipeline: hipother_pipeline
2526
source: \hipother
2627
trigger:
2728
branches:
2829
include:
29-
- develop
30+
- amd-staging
31+
- amd-mainline
3032

3133
variables:
3234
- group: common
@@ -36,7 +38,8 @@ trigger:
3638
batch: true
3739
branches:
3840
include:
39-
- develop
41+
- amd-staging
42+
- amd-mainline
4043
paths:
4144
exclude:
4245
- CODEOWNERS
@@ -47,7 +50,8 @@ pr:
4750
autoCancel: true
4851
branches:
4952
include:
50-
- develop
53+
- amd-staging
54+
- amd-mainline
5155
paths:
5256
exclude:
5357
- CODEOWNERS

CHANGELOG.md

Lines changed: 62 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,41 @@
22

33
Full documentation for HIP is available at [rocm.docs.amd.com](https://rocm.docs.amd.com/projects/HIP/en/latest/index.html)
44

5+
## HIP 6.3 for ROCm 6.3
6+
7+
### Changed
8+
9+
* Un-deprecated HIP APIs
10+
- `hipHostAlloc`
11+
- `hipFreeHost`
12+
13+
* New HIP APIs
14+
- `hipGraphExecGetFlags` returns the flags on executable graph.
15+
- `hipGraphNodeSetParams` updates parameters of a created node.
16+
- `hipGraphExecNodeSetParams` updates parameters of a created node on executable graph.
17+
- `hipDrvGraphMemcpyNodeGetParams` gets a memcpy node's parameters.
18+
- `hipDrvGraphMemcpyNodeSetParams` sets a memcpy node's parameters.
19+
- `hipDrvGraphAddMemFreeNode` creates a memory free node and adds it to a graph.
20+
- `hipDrvGraphExecMemcpyNodeSetParams` sets the parameters for a memcpy node in the given graphExec.
21+
- `hipDrvGraphExecMemsetNodeSetParams` sets the parameters for a memset node in the given graphExec.
22+
- `hipExtHostAlloc` preserves the functionality of `hipHostMalloc`.
23+
24+
### Resolved issues
25+
26+
27+
- The `_sync()` version of crosslane builtins such as `shfl_sync()`,
28+
`__all_sync()` and `__any_sync()`, continue to be hidden behind the
29+
preprocessor macro `HIP_ENABLE_WARP_SYNC_BUILTINS`, and will be enabled
30+
unconditionally in the next ROCm release.
31+
32+
## HIP 6.2.41134 for ROCm 6.2.1
33+
34+
### Resolved issues
35+
36+
* Soft hang when use AMD_SERIALIZE_KERNEL.
37+
* Memory leak in hipIpcCloseMemHandle.
38+
39+
540
## HIP 6.2 (For ROCm 6.2)
641

742
### Added
@@ -14,6 +49,12 @@ Full documentation for HIP is available at [rocm.docs.amd.com](https://rocm.docs
1449
- `hipGetFuncBySymbol` returns the pointer to device entry function that matches entry function symbolPtr.
1550
- `hipStreamBeginCaptureToGraph` begins graph capture on a stream to an existing graph.
1651
- `hipGraphInstantiateWithParams` creates an executable graph from a graph.
52+
- `hipMemcpyAtoA` copies from one 1D array to another.
53+
- `hipMemcpyDtoA` copies from device memory to a 1D array.
54+
- `hipMemcpyAtoD` copies from one 1D array to device memory.
55+
- `hipMemcpyAtoHAsync` copies from one 1D array to host memory.
56+
- `hipMemcpyHtoAAsync` copies from host memory to a 1D array.
57+
- `hipMemcpy2DArrayToArray` copies data between host and device.
1758

1859
- Added a new flag `integrated` support in device property
1960

@@ -24,13 +65,12 @@ Full documentation for HIP is available at [rocm.docs.amd.com](https://rocm.docs
2465
- Added initial support for 8-bit floating point datatype in `amd_hip_fp8.h`. These are accessible via `#include <hip/hip_fp8.h>`
2566
- Add UUID support for environment variable `HIP_VISIBLE_DEVICES`.
2667

27-
### Fixed
68+
### Resolved issues
2869
- Stream capture support in HIP graph.
2970
Prohibited and unhandled operations are fixed during stream capture in HIP runtime.
3071
- Fix undefined symbol error for hipTexRefGetArray & hipTexRefGetBorderColor.
3172

3273
## HIP 6.1 (For ROCm 6.1)
33-
### Optimizations
3474

3575
### Added
3676
- New environment variable HIP_LAUNCH_BLOCKING
@@ -41,7 +81,7 @@ The default value is 0 (disable), kernel will execute normally as defined in the
4181
### Changed
4282
- HIPRTC now assumes WGP mode for gfx10+. CU mode can be enabled by passing `-mcumode` to the compile options from `hiprtcCompileProgram`.
4383

44-
### Fixed
84+
### Resolved issues
4585
- HIP complex vector type multiplication and division operations.
4686
On AMD platform, some duplicated complex operators are removed to avoid compilation failures.
4787
In HIP, hipFloatComplex and hipDoubleComplex are defined as complex data types,
@@ -53,12 +93,8 @@ Any application uses complex multiplication and division operations, need to rep
5393

5494
Note: These complex operations are equivalent to corresponding types/functions on NVIDIA platform.
5595

56-
### Known Issues
57-
5896
## HIP 6.0 (For ROCm 6.0)
5997

60-
### Optimizations
61-
6298
### Added
6399
- Addition of hipExtGetLastError
64100
- AMD backend specific API, to return error code from last HIP API called from the active host thread
@@ -112,7 +148,7 @@ This header exists alongside the older bfloat16 header in`amd_hip_bfloat16.h` wh
112148
- hipGraphicsGLRegisterImage
113149
- With ROCm 6.0, the HIP version is 6.0. As the HIP runtime binary suffix is updated in every major ROCm release, in ROCm 6.0, the new filename is libamdhip64.so.6. Furthermore, in ROCm 6.0 release, the libamdhip64.so.5 binary from ROCm 5.7 is made available to maintain binary backward compatibility with ROCm 5.x.
114150

115-
### Changes Impacting Backward Compatibility
151+
### Changed Impacting Backward Compatibility
116152
- Data types for members in HIP_MEMCPY3D structure are changed from "unsigned int" to "size_t".
117153
- The value of the flag hipIpcMemLazyEnablePeerAccess is changed to “0x01”, which was previously defined as “0”.
118154
- Some device property attributes are not currently support in HIP runtime, in order to maintain consistency, the following related enumeration names are changed in hipDeviceAttribute_t
@@ -125,13 +161,7 @@ This header exists alongside the older bfloat16 header in`amd_hip_bfloat16.h` wh
125161
- hipArray_t replaces hipArray*, as the pointer to array.
126162
- This allows hipMemcpyAtoH and hipMemcpyHtoA to have the correct array type which is equivalent to coresponding CUDA driver APIs.
127163

128-
### Fixed
129-
- Kernel launch maximum dimension validation is added specifically on gridY and gridZ in the HIP API hipModule-LaunchKernel. As a result,when hipGetDeviceAttribute is called for the value of hipDeviceAttributeMaxGrid-Dim, the behavior on the AMD platform is equivalent to NVIDIA.
130-
- The HIP stream synchronisation behaviour is changed in internal stream functions, in which a flag "wait" is added and set when the current stream is null pointer while executing stream synchronisation on other explicitly created streams. This change avoids blocking of execution on null/default stream.
131-
The change won't affect usage of applications, and makes them behave the same on the AMD platform as NVIDIA.
132-
- Error handling behavior on unsupported GPU is fixed, HIP runtime will log out error message, instead of creating signal abortion error which is invisible to developers but continued kernel execution process. This is for the case when developers compile any application via hipcc, setting the option --offload-arch with GPU ID which is different from the one on the system.
133-
134-
### Deprecated And Removed
164+
### Removed
135165
- Deprecated Heterogeneous Compute (HCC) symbols and flags are removed from the HIP source code, including,
136166
- Build options on obsolete HCC_OPTIONS was removed from cmake.
137167
- Micro definitions are removed.
@@ -152,6 +182,12 @@ The change won't affect usage of applications, and makes them behave the same on
152182
- Deprecated HIT based tests are removed from HIP project
153183
- Catch tests are available [hip-tests] (https://github.com/ROCm/hip-tests) project
154184

185+
### Resolved issues
186+
- Kernel launch maximum dimension validation is added specifically on gridY and gridZ in the HIP API hipModule-LaunchKernel. As a result,when hipGetDeviceAttribute is called for the value of hipDeviceAttributeMaxGrid-Dim, the behavior on the AMD platform is equivalent to NVIDIA.
187+
- The HIP stream synchronisation behaviour is changed in internal stream functions, in which a flag "wait" is added and set when the current stream is null pointer while executing stream synchronisation on other explicitly created streams. This change avoids blocking of execution on null/default stream.
188+
The change won't affect usage of applications, and makes them behave the same on the AMD platform as NVIDIA.
189+
- Error handling behavior on unsupported GPU is fixed, HIP runtime will log out error message, instead of creating signal abortion error which is invisible to developers but continued kernel execution process. This is for the case when developers compile any application via hipcc, setting the option --offload-arch with GPU ID which is different from the one on the system.
190+
155191
### Known Issues
156192
- Dynamically loaded HIP runtime library references incorrect version of hipDeviceGetProperties and hipChooseDevice APIs
157193

@@ -161,13 +197,11 @@ As a workaround, while compiling with ROCm 6.0, use the string "hipDeviceGetProp
161197

162198
## HIP 5.7.1 (For ROCm 5.7.1)
163199

164-
### Fixed
200+
### Resolved issues
165201
- hipPointerGetAttributes API returns the correct HIP memory type as hipMemoryTypeManaged for managed memory.
166202

167203
## HIP 5.7 (For ROCm 5.7)
168204

169-
### Optimizations
170-
171205
### Added
172206
- Added meta_group_size/rank for getting the number of tiles and rank of a tile in the partition
173207
- Added new APIs supporting Windows only, under development on Linux
@@ -184,15 +218,11 @@ As a workaround, while compiling with ROCm 6.0, use the string "hipDeviceGetProp
184218

185219
- hipMipmappedArrayGetLevel for getting a mipmapped array on a mipmapped level
186220

187-
### Changed
188-
189-
### Fixed
190-
191221
### Known Issues
192222
- HIP memory type enum values currently don't support equivalent value to cudaMemoryTypeUnregistered, due to HIP functionality backward compatibility.
193223
- HIP API hipPointerGetAttributes could return invalid value in case the input memory pointer was not allocated through any HIP API on device or host.
194224

195-
### Upcoming changes in ROCm 6.0 release
225+
### Upcoming changes
196226
- Removal of gcnarch from hipDeviceProp_t structure
197227
- Addition of new fields in hipDeviceProp_t structure
198228
- maxTexture1D
@@ -218,17 +248,14 @@ As a workaround, while compiling with ROCm 6.0, use the string "hipDeviceGetProp
218248
- Remove hiparray* and make it opaque with hipArray_t
219249

220250
## HIP 5.6.1 (For ROCm 5.6.1)
221-
### Fixed
251+
252+
### Resolved issues
222253
- Enabled xnack+ check in HIP catch2 tests hang while tests execution
223254
- Memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs
224-
- Fixed a crash happening while using hipGraphAddMemFreeNode
255+
- Resolved an issue of crash while using hipGraphAddMemFreeNode
225256

226257
## HIP 5.6 (For ROCm 5.6)
227258

228-
### Optimizations
229-
- Consolidation of hipamd, rocclr and OpenCL projects in clr
230-
- Optimized lock for graph global capture mode
231-
232259
### Added
233260
- Added hipRTC support for amd_hip_fp16
234261
- Added hipStreamGetDevice implementation to get the device assocaited with the stream
@@ -243,7 +270,11 @@ As a workaround, while compiling with ROCm 6.0, use the string "hipDeviceGetProp
243270
- Consolidation of hipamd, ROCclr, and OpenCL repositories into a single repository called clr. Instructions are updated to build HIP from sources in the HIP Installation guide
244271
- Removed hipBusBandwidth and hipCommander samples from hip-tests
245272

246-
### Fixed
273+
### Optimized
274+
- Consolidation of hipamd, rocclr and OpenCL projects in clr
275+
- Optimized lock for graph global capture mode
276+
277+
### Resolved issues
247278
- Fixed regression in hipMemCpyParam3D when offset is applied
248279

249280
### Known Issues
@@ -252,7 +283,7 @@ As a workaround, while compiling with ROCm 6.0, use the string "hipDeviceGetProp
252283
- hipSetDevice and hipSetDeviceFlags APIs return hipErrorInvalidDevice instead of hipErrorNoDevice, on a system without GPU
253284
- Known memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs. Issue will be fixed in future release
254285

255-
### Upcoming changes in future release
286+
### Upcoming changes
256287
- Removal of gcnarch from hipDeviceProp_t structure
257288
- Addition of new fields in hipDeviceProp_t structure
258289
- maxTexture1D

CMakeLists.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,21 @@ endif()
4141
# Build steps
4242
#############
4343
if(CLR_BUILD_HIP)
44+
if (UNIX)
45+
set(HIPCC_EXECUTABLE "hipcc")
46+
set(HIPCONFIG_EXECUTABLE "hipconfig")
47+
else()
48+
set(HIPCC_EXECUTABLE "hipcc.exe")
49+
set(HIPCONFIG_EXECUTABLE "hipconfig.exe")
50+
endif()
51+
4452
# Set default HIPCC_BIN_DIR to /opt/rocm/bin
4553
if(NOT DEFINED HIPCC_BIN_DIR AND UNIX)
4654
set(HIPCC_BIN_DIR "/opt/rocm/bin" CACHE STRING "Default hipcc directory on linux.")
4755
endif()
4856
message(STATUS "HIPCC Binary Directory: ${HIPCC_BIN_DIR}")
4957

50-
if(NOT EXISTS ${HIPCC_BIN_DIR}/hipconfig)
58+
if(NOT EXISTS ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE})
5159
message(FATAL_ERROR "Please pass hipcc/build or hipcc/bin using -DHIPCC_BIN_DIR.")
5260
endif()
5361

@@ -56,10 +64,9 @@ if(CLR_BUILD_HIP)
5664
message(FATAL_ERROR "Please pass HIP using -DHIP_COMMON_DIR. HIP_COMMON_DIR is incorrect")
5765
endif()
5866
# Determine HIP_PLATFORM
59-
set(__HIPCONFIG_EXECUTABLE__ ${HIPCC_BIN_DIR}/hipconfig)
6067
if(NOT DEFINED HIP_PLATFORM)
6168
if(NOT DEFINED ENV{HIP_PLATFORM})
62-
execute_process(COMMAND ${__HIPCONFIG_EXECUTABLE__} --platform
69+
execute_process(COMMAND ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE} --platform
6370
OUTPUT_VARIABLE HIP_PLATFORM
6471
OUTPUT_STRIP_TRAILING_WHITESPACE)
6572
else()

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Please use the [GitHub Issue](https://github.com/ROCm/clr/issues) tab to notify
2323

2424
## Acceptance Criteria ##
2525

26-
clr is Common Language Runtime contains C++ codes for the implementation of HIP runtime APIs on the AMD platform.
26+
clr Compute Language Runtime contains C++ codes for the implementation of HIP runtime APIs on the AMD platform.
2727
Bug fixes and performance are both important goals in clr. Because of this, when a pull request is created, the owner of the repository will review, and put it in automated testing to make sure,
2828
* The change will build on various OS platforms (Ubuntu, RHEL, etc.)
2929
* The build package will install and run the code on different GPU architectures (MI-series, Radeon series cards, etc.),
@@ -38,7 +38,7 @@ clr contains three parts of codes,
3838

3939
- `opencl` - contains implementation of OpenCL on the AMD platform.
4040

41-
- `rocclr` - contains common runtime used in HIP and OpenCL, which includes
41+
- `rocclr` - contains compute runtime used in HIP and OpenCL, which includes
4242
- `include`, header files,
4343
- `device`, implementation of GPU device related interfaces to the backend support,
4444
- `cimpiler`, implementation of interfaces with compiler,

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# AMD CLR - Compute Language Runtimes
22

3-
AMD CLR (Common Language Runtime) contains source codes for AMD's compute languages runtimes: `HIP` and `OpenCL™`.
3+
AMD CLR (Compute Language Runtime) contains source codes for AMD's compute languages runtimes: `HIP` and `OpenCL™`.
44

55
## Project Organisation
66

77
- `hipamd` - contains implementation of `HIP` language on AMD platform. It is hosted at [ROCm/clr/hipamd](https://github.com/ROCm/clr/tree/develop/hipamd)
88
- `opencl` - contains implementation of [OpenCL™](https://www.khronos.org/opencl/) on AMD platform. Now it is hosted at [ROCm/clr/opencl](https://github.com/ROCm/clr/tree/develop/opencl)
9-
- `rocclr` - contains common runtime used in `HIP` and `OpenCL™`. This is hosted at [ROCm/clr/rocclr](https://github.com/ROCm/clr/tree/develop/rocclr)
9+
- `rocclr` - contains compute runtime used in `HIP` and `OpenCL™`. This is hosted at [ROCm/clr/rocclr](https://github.com/ROCm/clr/tree/develop/rocclr)
1010

1111
## How to build/install
1212

@@ -56,7 +56,7 @@ To run `hip-tests` please go to the repository and follow the steps.
5656

5757
## Release notes
5858

59-
HIP provides release notes in [CLR change log](https://github.com/ROCm/clr/blob/develop/CHANGELOG.md), which has the records of changes in each release.
59+
HIP provides release notes in [CLR change log](./CHANGELOG.md), which has the records of changes in each release.
6060

6161
## Disclaimer
6262

hipamd/CMakeLists.txt

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,13 @@ message(STATUS "HIP_COMMON_DIR found at ${HIP_COMMON_DIR}")
6666
message(STATUS "HIPNV_DIR found at ${HIPNV_DIR}")
6767
set(HIP_COMMON_INCLUDE_DIR ${HIP_COMMON_DIR}/include)
6868
set(HIP_COMMON_BIN_DIR ${HIP_COMMON_DIR}/bin)
69-
set(__HIPCONFIG_EXECUTABLE__ ${HIP_COMMON_DIR}/bin/hipconfig)
69+
if (WIN32)
70+
set(HIPCC_EXECUTABLE "hipcc.exe")
71+
set(HIPCONFIG_EXECUTABLE "hipconfig.exe")
72+
else()
73+
set(HIPCC_EXECUTABLE "hipcc")
74+
set(HIPCONFIG_EXECUTABLE "hipconfig")
75+
endif()
7076

7177
#############################
7278
# Setup config generation
@@ -390,25 +396,16 @@ install(FILES ${PROJECT_BINARY_DIR}/include/hip/hip_version.h
390396
if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
391397
file(TO_CMAKE_PATH "${HIPCC_BIN_DIR}" HIPCC_BIN_DIR)
392398
if(EXISTS ${HIPCC_BIN_DIR})
393-
set(hipcc_bin ${HIPCC_BIN_DIR}/hipcc.bin)
394-
set(hipconfig_bin ${HIPCC_BIN_DIR}/hipconfig.bin)
395-
if(WIN32)
396-
set(hipcc_bin ${hipcc_bin}.exe)
397-
set(hipconfig_bin ${hipconfig_bin}.exe)
399+
install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCC_EXECUTABLE} DESTINATION bin)
400+
install(PROGRAMS ${HIPCC_BIN_DIR}/${HIPCONFIG_EXECUTABLE} DESTINATION bin)
401+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
402+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
403+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
404+
405+
if(NOT UNIX)
406+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
407+
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
398408
endif()
399-
if(EXISTS ${hipcc_bin} AND EXISTS ${hipconfig_bin})
400-
install(PROGRAMS ${hipcc_bin} DESTINATION bin)
401-
install(PROGRAMS ${hipconfig_bin} DESTINATION bin)
402-
endif()
403-
endif()
404-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc DESTINATION bin)
405-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig DESTINATION bin)
406-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
407-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
408-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
409-
if(WIN32)
410-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
411-
install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
412409
endif()
413410
endif()
414411

@@ -425,7 +422,7 @@ configure_package_config_file(
425422
)
426423

427424
configure_package_config_file(
428-
hip-config-amd.cmake
425+
hip-config-amd.cmake.in
429426
${CMAKE_CURRENT_BINARY_DIR}/hip-config-amd.cmake
430427
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR}
431428
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR BIN_INSTALL_DIR

0 commit comments

Comments
 (0)