|
1 | 1 | /* |
2 | | - * Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All Rights reserved. |
3 | | - * $COPYRIGHT$ |
| 2 | + * Copyright (c) 2022-2025 Advanced Micro Devices, Inc. All Rights reserved. |
4 | 3 | * Copyright (c) 2024 The University of Tennessee and The University |
5 | 4 | * of Tennessee Research Foundation. All rights |
6 | 5 | * reserved. |
7 | | - * |
| 6 | + * $COPYRIGHT$ |
8 | 7 | * Additional copyrights may follow |
9 | 8 | * |
10 | 9 | * $HEADER$ |
|
16 | 15 | #include "opal/mca/accelerator/base/base.h" |
17 | 16 | #include "opal/constants.h" |
18 | 17 | #include "opal/util/output.h" |
| 18 | +#include "ompi/info/info_memkind.h" |
19 | 19 |
|
20 | 20 | /* Accelerator API's */ |
21 | 21 | static int mca_accelerator_rocm_check_addr(const void *addr, int *dev_id, uint64_t *flags); |
@@ -74,6 +74,7 @@ static int mca_accelerator_rocm_sync_stream(opal_accelerator_stream_t *stream); |
74 | 74 | static int mca_accelerator_rocm_get_num_devices(int *num_devices); |
75 | 75 |
|
76 | 76 | static int mca_accelerator_rocm_get_mem_bw(int device, float *bw); |
| 77 | +static void mca_accelerator_rocm_get_memkind(ompi_memkind_t *memkind); |
77 | 78 |
|
78 | 79 | #define GET_STREAM(_stream) (_stream == MCA_ACCELERATOR_STREAM_DEFAULT ? 0 : *((hipStream_t *)_stream->stream)) |
79 | 80 |
|
@@ -118,7 +119,8 @@ opal_accelerator_base_module_t opal_accelerator_rocm_module = |
118 | 119 | mca_accelerator_rocm_get_buffer_id, |
119 | 120 |
|
120 | 121 | mca_accelerator_rocm_get_num_devices, |
121 | | - mca_accelerator_rocm_get_mem_bw |
| 122 | + mca_accelerator_rocm_get_mem_bw, |
| 123 | + mca_accelerator_rocm_get_memkind |
122 | 124 | }; |
123 | 125 |
|
124 | 126 |
|
@@ -946,3 +948,15 @@ static int mca_accelerator_rocm_get_mem_bw(int device, float *bw) |
946 | 948 | *bw = opal_accelerator_rocm_mem_bw[device]; |
947 | 949 | return OPAL_SUCCESS; |
948 | 950 | } |
| 951 | + |
| 952 | +static void mca_accelerator_rocm_get_memkind (ompi_memkind_t *memkind) |
| 953 | +{ |
| 954 | + memkind->im_name = strdup("rocm"); |
| 955 | + memkind->im_no_restrictors = false; |
| 956 | + memkind->im_num_restrictors = 3; |
| 957 | + memkind->im_restrictors[0] = strdup("host"); |
| 958 | + memkind->im_restrictors[1] = strdup("device"); |
| 959 | + memkind->im_restrictors[2] = strdup("managed"); |
| 960 | + |
| 961 | + return; |
| 962 | +} |
0 commit comments