/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/amd_address_space.hpp Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/amd_address_space.hpp Source File#

Composable Kernel: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-composable-kernel/checkouts/develop/include/ck/utility/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 
12 namespace ck {
13 
14 enum struct AddressSpaceEnum
15 {
16  Generic,
17  Global,
18  Lds,
19  Sgpr,
20  Vgpr,
21 };
22 
23 template <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 
34 template <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:22
Definition: ck.hpp:267
AddressSpaceEnum
Definition: amd_address_space.hpp:15
__host__ __device__ T CK_CONSTANT_ADDRESS_SPACE * cast_pointer_to_constant_address_space(T *p)
Definition: amd_address_space.hpp:35
__device__ T * cast_pointer_to_generic_address_space(T CK_CONSTANT_ADDRESS_SPACE *p)
Definition: amd_address_space.hpp:24