amd_address_space.hpp Source File

amd_address_space.hpp Source File#

Composable Kernel: amd_address_space.hpp Source File
amd_address_space.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2018-2023, Advanced Micro Devices, Inc. All rights reserved.
3
4#pragma once
5
6#include "ck/ck.hpp"
8
9// Address Space for AMDGCN
10// https://llvm.org/docs/AMDGPUUsage.html#address-space
11
12namespace ck {
13
22
23template <typename T>
25{
26 // cast a pointer in "Constant" address space (4) to "Generic" address space (0)
27 // only c-style pointer cast seems be able to be compiled
28#pragma clang diagnostic push
29#pragma clang diagnostic ignored "-Wold-style-cast"
30 return (T*)p; // NOLINT(old-style-cast)
31#pragma clang diagnostic pop
32}
33
34template <typename T>
36{
37 // cast a pointer in "Generic" address space (0) to "Constant" address space (4)
38 // only c-style pointer cast seems be able to be compiled
39#pragma clang diagnostic push
40#pragma clang diagnostic ignored "-Wold-style-cast"
41 return (T CK_CONSTANT_ADDRESS_SPACE*)p; // NOLINT(old-style-cast)
42#pragma clang diagnostic pop
43}
44
45} // namespace ck
#define CK_CONSTANT_ADDRESS_SPACE
Definition ck.hpp:23
Definition ck.hpp:268
__host__ __device__ T CK_CONSTANT_ADDRESS_SPACE * cast_pointer_to_constant_address_space(T *p)
Definition amd_address_space.hpp:35
AddressSpaceEnum
Definition amd_address_space.hpp:15
@ Lds
Definition amd_address_space.hpp:18
@ Global
Definition amd_address_space.hpp:17
@ Vgpr
Definition amd_address_space.hpp:20
@ Generic
Definition amd_address_space.hpp:16
@ Sgpr
Definition amd_address_space.hpp:19
__device__ T * cast_pointer_to_generic_address_space(T CK_CONSTANT_ADDRESS_SPACE *p)
Definition amd_address_space.hpp:24