Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
09aba405
Commit
09aba405
authored
Nov 02, 2023
by
Umang Yadav
Browse files
Add fp8 file during JIT compilation
parent
61c3e5a5
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
11 deletions
+48
-11
cmake/Embed.cmake
cmake/Embed.cmake
+47
-8
src/targets/gpu/CMakeLists.txt
src/targets/gpu/CMakeLists.txt
+1
-3
No files found.
cmake/Embed.cmake
View file @
09aba405
...
...
@@ -57,21 +57,21 @@ endfunction()
function
(
generate_embed_source EMBED_NAME
)
set
(
options
)
set
(
oneValueArgs SRC HEADER RELATIVE
)
set
(
multiValueArgs OBJECTS SYMBOLS FILES
)
set
(
multiValueArgs OBJECTS SYMBOLS FILES
EXTRA_FILES EXTRA_RELATIVE
)
cmake_parse_arguments
(
PARSE
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
set
(
EXTERNS
)
set
(
INIT_KERNELS
)
list
(
LENGTH PARSE_SYMBOLS SYMBOLS_LEN
)
list
(
LENGTH PARSE_OBJECTS OBJECTS_LEN
)
list
(
LENGTH PARSE_FILES PARSE_FILES_LEN
)
list
(
LENGTH PARSE_EXTRA_FILES EXTRA_FILES_LEN
)
if
(
NOT
${
SYMBOLS_LEN
}
EQUAL
${
OBJECTS_LEN
}
)
message
(
FATAL_ERROR
"Symbols and objects dont match:
${
SYMBOLS_LEN
}
!=
${
OBJECTS_LEN
}
"
)
endif
()
math
(
EXPR LEN
"
${
SYMBOLS_LEN
}
- 1"
)
math
(
EXPR
FILES_
LEN
"
${
SYMBOLS_LEN
}
-
${
EXTRA_FILES_LEN
}
-
1"
)
foreach
(
idx RANGE
${
LEN
}
)
foreach
(
idx RANGE
${
FILES_
LEN
}
)
list
(
GET PARSE_SYMBOLS
${
idx
}
SYMBOL
)
list
(
GET PARSE_OBJECTS
${
idx
}
OBJECT
)
list
(
GET PARSE_FILES
${
idx
}
FILE
)
...
...
@@ -101,6 +101,39 @@ extern const size_t ${LENGTH_SYMBOL};
{
\"
${
BASE_NAME
}
\"
, {
${
START_SYMBOL
}
,
${
LENGTH_SYMBOL
}
} },"
)
endforeach
()
math
(
EXPR EXTRA_FILES_LEN
"
${
EXTRA_FILES_LEN
}
-1"
)
foreach
(
offset RANGE
${
EXTRA_FILES_LEN
}
)
math
(
EXPR idx
"
${
offset
}
+
${
PARSE_FILES_LEN
}
"
)
list
(
GET PARSE_SYMBOLS
${
idx
}
SYMBOL
)
list
(
GET PARSE_OBJECTS
${
idx
}
OBJECT
)
list
(
GET PARSE_EXTRA_FILES
${
offset
}
FILE
)
list
(
GET PARSE_EXTRA_RELATIVE
${
offset
}
EXTRA_RELATIVE_PATH
)
set
(
START_SYMBOL
"_binary_
${
SYMBOL
}
_start"
)
set
(
LENGTH_SYMBOL
"_binary_
${
SYMBOL
}
_length"
)
if
(
EMBED_USE_LD
)
string
(
APPEND EXTERNS
"
extern const char
${
START_SYMBOL
}
[];
extern const size_t _binary_
${
SYMBOL
}
_size;
const auto
${
LENGTH_SYMBOL
}
= reinterpret_cast<size_t>(&_binary_
${
SYMBOL
}
_size);
"
)
else
()
string
(
APPEND EXTERNS
"
extern const char
${
START_SYMBOL
}
[];
extern const size_t
${
LENGTH_SYMBOL
}
;
"
)
endif
()
if
(
EXTRA_RELATIVE_PATH
)
file
(
RELATIVE_PATH BASE_NAME
${
EXTRA_RELATIVE_PATH
}
"
${
FILE
}
"
)
else
()
get_filename_component
(
BASE_NAME
"
${
FILE
}
"
NAME
)
endif
()
string
(
APPEND INIT_KERNELS
"
{
\"
${
BASE_NAME
}
\"
, {
${
START_SYMBOL
}
,
${
LENGTH_SYMBOL
}
} },"
)
endforeach
()
file
(
WRITE
"
${
PARSE_HEADER
}
"
"
#include <string_view>
#include <unordered_map>
...
...
@@ -165,7 +198,7 @@ endfunction()
function
(
add_embed_library EMBED_NAME
)
set
(
options
)
set
(
oneValueArgs RELATIVE
)
set
(
multiValueArgs
)
set
(
multiValueArgs
EXTRA_HEADERS EXTRA_HEADERS_RELATIVE
)
cmake_parse_arguments
(
PARSE
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
file
(
MAKE_DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
/embed
)
...
...
@@ -182,8 +215,14 @@ function(add_embed_library EMBED_NAME)
list
(
APPEND OUTPUT_FILES
${
OUTPUT_FILE
}
)
list
(
APPEND SYMBOLS
${
OUTPUT_SYMBOL
}
)
endforeach
()
foreach
(
FILE
${
PARSE_EXTRA_HEADERS
}
)
embed_file
(
OUTPUT_FILE OUTPUT_SYMBOL
${
FILE
}
)
list
(
APPEND OUTPUT_FILES
${
OUTPUT_FILE
}
)
list
(
APPEND SYMBOLS
${
OUTPUT_SYMBOL
}
)
endforeach
()
message
(
STATUS
"Generating embedding library
${
EMBED_NAME
}
"
)
generate_embed_source
(
${
EMBED_NAME
}
SRC
${
SRC_FILE
}
HEADER
${
HEADER_FILE
}
OBJECTS
${
OUTPUT_FILES
}
SYMBOLS
${
SYMBOLS
}
RELATIVE
${
PARSE_RELATIVE
}
FILES
${
PARSE_UNPARSED_ARGUMENTS
}
)
generate_embed_source
(
${
EMBED_NAME
}
SRC
${
SRC_FILE
}
HEADER
${
HEADER_FILE
}
OBJECTS
${
OUTPUT_FILES
}
SYMBOLS
${
SYMBOLS
}
RELATIVE
${
PARSE_RELATIVE
}
FILES
${
PARSE_UNPARSED_ARGUMENTS
}
EXTRA_FILES
${
PARSE_EXTRA_HEADERS
}
EXTRA_RELATIVE
${
PARSE_EXTRA_HEADERS_RELATIVE
}
)
set
(
INTERNAL_EMBED_LIB embed_lib_
${
EMBED_NAME
}
)
add_library
(
${
INTERNAL_EMBED_LIB
}
OBJECT
"
${
SRC_FILE
}
"
)
...
...
src/targets/gpu/CMakeLists.txt
View file @
09aba405
...
...
@@ -49,8 +49,6 @@ endif()
file
(
GLOB KERNEL_FILES CONFIGURE_DEPENDS
${
CMAKE_CURRENT_SOURCE_DIR
}
/kernels/include/migraphx/kernels/*.hpp
)
message
(
STATUS
"CMAKE Source Dir is :
${
CMAKE_SOURCE_DIR
}
"
)
list
(
APPEND KERNEL_FILES
${
CMAKE_SOURCE_DIR
}
/src/include/migraphx/fp8e4m3fnuz.hpp
)
message
(
STATUS
"KERNEL_FILES:
${
KERNEL_FILES
}
"
)
if
(
NOT MIGRAPHX_USE_COMPOSABLEKERNEL
)
...
...
@@ -62,7 +60,7 @@ endif()
include
(
Embed
)
add_embed_library
(
migraphx_kernels
${
KERNEL_FILES
}
RELATIVE
${
CMAKE_CURRENT_SOURCE_DIR
}
/kernels/include/
)
add_embed_library
(
migraphx_kernels
${
KERNEL_FILES
}
RELATIVE
${
CMAKE_CURRENT_SOURCE_DIR
}
/kernels/include/
EXTRA_HEADERS
${
CMAKE_SOURCE_DIR
}
/src/include/migraphx/fp8e4m3fnuz.hpp EXTRA_HEADERS_RELATIVE
${
CMAKE_SOURCE_DIR
}
/src/include
)
configure_file
(
device/targets.hpp.in include/migraphx/gpu/device/targets.hpp
)
file
(
GLOB DEVICE_GPU_SRCS CONFIGURE_DEPENDS
${
CMAKE_CURRENT_SOURCE_DIR
}
/device/*.cpp
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment