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
53582534
Commit
53582534
authored
Oct 05, 2023
by
Artur Wojcik
Browse files
fix kernels resources on Windows
parent
ae3d92ff
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
60 deletions
+56
-60
cmake/Embed.cmake
cmake/Embed.cmake
+13
-3
src/include/migraphx/dynamic_loader.hpp
src/include/migraphx/dynamic_loader.hpp
+1
-0
src/targets/gpu/kernels/migraphx_kernels.cpp
src/targets/gpu/kernels/migraphx_kernels.cpp
+39
-49
src/targets/gpu/kernels/migraphx_kernels.hpp
src/targets/gpu/kernels/migraphx_kernels.hpp
+3
-8
No files found.
cmake/Embed.cmake
View file @
53582534
...
@@ -27,7 +27,10 @@ find_program(EMBED_OBJCOPY objcopy)
...
@@ -27,7 +27,10 @@ find_program(EMBED_OBJCOPY objcopy)
option
(
EMBED_USE_LD
"Use ld to embed data files"
OFF
)
option
(
EMBED_USE_LD
"Use ld to embed data files"
OFF
)
function
(
wrap_string
)
function
(
wrap_string
)
cmake_parse_arguments
(
PARSE
""
"VARIABLE;AT_COLUMN"
""
${
ARGN
}
)
set
(
options
)
set
(
oneValueArgs VARIABLE AT_COLUMN
)
set
(
multiValueArgs
)
cmake_parse_arguments
(
PARSE
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
string
(
LENGTH
${${
PARSE_VARIABLE
}}
string_length
)
string
(
LENGTH
${${
PARSE_VARIABLE
}}
string_length
)
math
(
EXPR offset
"0"
)
math
(
EXPR offset
"0"
)
...
@@ -51,7 +54,11 @@ function(wrap_string)
...
@@ -51,7 +54,11 @@ function(wrap_string)
endfunction
()
endfunction
()
function
(
generate_embed_source EMBED_NAME SRC_FILE HEADER_FILE BASE_DIRECTORY
)
function
(
generate_embed_source EMBED_NAME SRC_FILE HEADER_FILE BASE_DIRECTORY
)
cmake_parse_arguments
(
PARSE
""
""
"SYMBOLS;FILES"
${
ARGN
}
)
set
(
options
)
set
(
oneValueArgs
""
)
set
(
multiValueArgs SYMBOLS FILES
)
cmake_parse_arguments
(
PARSE
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
foreach
(
SYMBOL FILE IN ZIP_LISTS PARSE_SYMBOLS PARSE_FILES
)
foreach
(
SYMBOL FILE IN ZIP_LISTS PARSE_SYMBOLS PARSE_FILES
)
set
(
START_SYMBOL
"_binary_
${
SYMBOL
}
_start"
)
set
(
START_SYMBOL
"_binary_
${
SYMBOL
}
_start"
)
set
(
LENGTH_SYMBOL
"_binary_
${
SYMBOL
}
_length"
)
set
(
LENGTH_SYMBOL
"_binary_
${
SYMBOL
}
_length"
)
...
@@ -126,7 +133,10 @@ extern const size_t _binary_${OUTPUT_SYMBOL}_length = sizeof(_binary_${OUTPUT_SY
...
@@ -126,7 +133,10 @@ extern const size_t _binary_${OUTPUT_SYMBOL}_length = sizeof(_binary_${OUTPUT_SY
endfunction
()
endfunction
()
function
(
add_embed_library EMBED_NAME
)
function
(
add_embed_library EMBED_NAME
)
cmake_parse_arguments
(
PARSE
""
"BASE_DIRECTORY"
""
${
ARGN
}
)
set
(
options
)
set
(
oneValueArgs BASE_DIRECTORY
)
set
(
multiValueArgs
)
cmake_parse_arguments
(
PARSE
"
${
options
}
"
"
${
oneValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
set
(
EMBED_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
/embed/
${
EMBED_NAME
}
)
set
(
EMBED_DIR
${
CMAKE_CURRENT_BINARY_DIR
}
/embed/
${
EMBED_NAME
}
)
file
(
MAKE_DIRECTORY
${
EMBED_DIR
}
)
file
(
MAKE_DIRECTORY
${
EMBED_DIR
}
)
set
(
SRC_FILE
"
${
EMBED_DIR
}
/
${
EMBED_NAME
}
.cpp"
)
set
(
SRC_FILE
"
${
EMBED_DIR
}
/
${
EMBED_NAME
}
.cpp"
)
...
...
src/include/migraphx/dynamic_loader.hpp
View file @
53582534
...
@@ -45,6 +45,7 @@ struct MIGRAPHX_EXPORT dynamic_loader
...
@@ -45,6 +45,7 @@ struct MIGRAPHX_EXPORT dynamic_loader
return
path
(
reinterpret_cast
<
void
*>
(
address
));
return
path
(
reinterpret_cast
<
void
*>
(
address
));
}
}
static
fs
::
path
path
(
void
*
address
);
static
fs
::
path
path
(
void
*
address
);
#endif
static
optional
<
dynamic_loader
>
try_load
(
const
fs
::
path
&
p
);
static
optional
<
dynamic_loader
>
try_load
(
const
fs
::
path
&
p
);
...
...
src/targets/gpu/kernels/migraphx_kernels.cpp
View file @
53582534
...
@@ -27,61 +27,51 @@
...
@@ -27,61 +27,51 @@
#include "migraphx_kernels.hpp"
#include "migraphx_kernels.hpp"
#include "resource.h"
#include "resource.h"
namespace
migraphx
{
namespace
{
inline
namespace
MIGRAPHX_INLINE_NS
{
std
::
string_view
__read
(
int
id
)
namespace
gpu
{
namespace
resource
{
std
::
string_view
read
(
int
id
)
{
{
HMODULE
handle
{
::
GetModuleHandle
(
nullptr
)};
HMODULE
handle
{
::
GetModuleHandle
(
nullptr
)};
HRSRC
rc
{
::
FindResource
(
handle
,
MAKEINTRESOURCE
(
id
),
MAKEINTRESOURCE
(
MIGRAPHX_TEXTFILE
))};
HRSRC
rc
{
::
FindResource
(
handle
,
MAKEINTRESOURCE
(
id
),
MAKEINTRESOURCE
(
MIGRAPHX_TEXTFILE
))};
HGLOBAL
data
{
::
LoadResource
(
handle
,
rc
)};
HGLOBAL
data
{
::
LoadResource
(
handle
,
rc
)};
return
{
static_cast
<
char
const
*>
(
::
LockResource
(
data
)),
::
SizeofResource
(
handle
,
rc
)};
return
{
static_cast
<
char
const
*>
(
::
LockResource
(
data
)),
::
SizeofResource
(
handle
,
rc
)};
}
}
}
// namespace resource
}
std
::
vector
<
src_file
>
migraphx_kernels
()
std
::
unordered_map
<
std
::
string_view
,
std
::
string_view
>
migraphx_kernels
()
{
{
static
src_file
_kernels_
[]
=
{
static
std
::
unordered_map
<
std
::
string_view
,
std
::
string_view
>
kernels
=
{
{
"migraphx/kernels/algorithm.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_ALGORITHM_HPP
)},
{
"migraphx/kernels/algorithm.hpp"
,
__read
(
MIGRAPHX_IDR_ALGORITHM_HPP
)},
{
"migraphx/kernels/args.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_ARGS_HPP
)},
{
"migraphx/kernels/args.hpp"
,
__read
(
MIGRAPHX_IDR_ARGS_HPP
)},
{
"migraphx/kernels/array.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_ARRAY_HPP
)},
{
"migraphx/kernels/array.hpp"
,
__read
(
MIGRAPHX_IDR_ARRAY_HPP
)},
{
"migraphx/kernels/concat.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_CONCAT_HPP
)},
{
"migraphx/kernels/concat.hpp"
,
__read
(
MIGRAPHX_IDR_CONCAT_HPP
)},
{
"migraphx/kernels/debug.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_DEBUG_HPP
)},
{
"migraphx/kernels/debug.hpp"
,
__read
(
MIGRAPHX_IDR_DEBUG_HPP
)},
{
"migraphx/kernels/dfor.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_DFOR_HPP
)},
{
"migraphx/kernels/dfor.hpp"
,
__read
(
MIGRAPHX_IDR_DFOR_HPP
)},
{
"migraphx/kernels/dpp.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_DPP_HPP
)},
{
"migraphx/kernels/dpp.hpp"
,
__read
(
MIGRAPHX_IDR_DPP_HPP
)},
{
"migraphx/kernels/functional.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_FUNCTIONAL_HPP
)},
{
"migraphx/kernels/functional.hpp"
,
__read
(
MIGRAPHX_IDR_FUNCTIONAL_HPP
)},
{
"migraphx/kernels/gather.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_GATHER_HPP
)},
{
"migraphx/kernels/gather.hpp"
,
__read
(
MIGRAPHX_IDR_GATHER_HPP
)},
{
"migraphx/kernels/gathernd.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_GATHERND_HPP
)},
{
"migraphx/kernels/gathernd.hpp"
,
__read
(
MIGRAPHX_IDR_GATHERND_HPP
)},
{
"migraphx/kernels/generic_constant.hpp"
,
{
"migraphx/kernels/generic_constant.hpp"
,
__read
(
MIGRAPHX_IDR_GENERIC_CONSTANT_HPP
)},
resource
::
read
(
MIGRAPHX_IDR_GENERIC_CONSTANT_HPP
)},
{
"migraphx/kernels/hip.hpp"
,
__read
(
MIGRAPHX_IDR_HIP_HPP
)},
{
"migraphx/kernels/hip.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_HIP_HPP
)},
{
"migraphx/kernels/index.hpp"
,
__read
(
MIGRAPHX_IDR_INDEX_HPP
)},
{
"migraphx/kernels/index.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_INDEX_HPP
)},
{
"migraphx/kernels/integral_constant.hpp"
,
__read
(
MIGRAPHX_IDR_INTEGRAL_CONSTANT_HPP
)},
{
"migraphx/kernels/integral_constant.hpp"
,
{
"migraphx/kernels/iota_iterator.hpp"
,
__read
(
MIGRAPHX_IDR_IOTA_ITERATOR_HPP
)},
resource
::
read
(
MIGRAPHX_IDR_INTEGRAL_CONSTANT_HPP
)},
{
"migraphx/kernels/layernorm.hpp"
,
__read
(
MIGRAPHX_IDR_LAYERNORM_HPP
)},
{
"migraphx/kernels/iota_iterator.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_IOTA_ITERATOR_HPP
)},
{
"migraphx/kernels/math.hpp"
,
__read
(
MIGRAPHX_IDR_MATH_HPP
)},
{
"migraphx/kernels/layernorm.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_LAYERNORM_HPP
)},
{
"migraphx/kernels/ops.hpp"
,
__read
(
MIGRAPHX_IDR_OPS_HPP
)},
{
"migraphx/kernels/math.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_MATH_HPP
)},
{
"migraphx/kernels/pad.hpp"
,
__read
(
MIGRAPHX_IDR_PAD_HPP
)},
{
"migraphx/kernels/ops.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_OPS_HPP
)},
{
"migraphx/kernels/pointwise.hpp"
,
__read
(
MIGRAPHX_IDR_POINTWISE_HPP
)},
{
"migraphx/kernels/pad.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_PAD_HPP
)},
{
"migraphx/kernels/preload.hpp"
,
__read
(
MIGRAPHX_IDR_PRELOAD_HPP
)},
{
"migraphx/kernels/pointwise.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_POINTWISE_HPP
)},
{
"migraphx/kernels/print.hpp"
,
__read
(
MIGRAPHX_IDR_PRINT_HPP
)},
{
"migraphx/kernels/preload.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_PRELOAD_HPP
)},
{
"migraphx/kernels/ranges.hpp"
,
__read
(
MIGRAPHX_IDR_RANGES_HPP
)},
{
"migraphx/kernels/print.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_PRINT_HPP
)},
{
"migraphx/kernels/reduce.hpp"
,
__read
(
MIGRAPHX_IDR_REDUCE_HPP
)},
{
"migraphx/kernels/ranges.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_RANGES_HPP
)},
{
"migraphx/kernels/roialign.hpp"
,
__read
(
MIGRAPHX_IDR_ROIALIGN_HPP
)},
{
"migraphx/kernels/reduce.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_REDUCE_HPP
)},
{
"migraphx/kernels/scatternd.hpp"
,
__read
(
MIGRAPHX_IDR_SCATTERND_HPP
)},
{
"migraphx/kernels/roialign.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_ROIALIGN_HPP
)},
{
"migraphx/kernels/shape.hpp"
,
__read
(
MIGRAPHX_IDR_SHAPE_HPP
)},
{
"migraphx/kernels/scatternd.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_SCATTERND_HPP
)},
{
"migraphx/kernels/softmax.hpp"
,
__read
(
MIGRAPHX_IDR_SOFTMAX_HPP
)},
{
"migraphx/kernels/shape.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_SHAPE_HPP
)},
{
"migraphx/kernels/tensor_view.hpp"
,
__read
(
MIGRAPHX_IDR_TENSOR_VIEW_HPP
)},
{
"migraphx/kernels/softmax.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_SOFTMAX_HPP
)},
{
"migraphx/kernels/type_traits.hpp"
,
__read
(
MIGRAPHX_IDR_TYPE_TRAITS_HPP
)},
{
"migraphx/kernels/tensor_view.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_TENSOR_VIEW_HPP
)},
{
"migraphx/kernels/types.hpp"
,
__read
(
MIGRAPHX_IDR_TYPES_HPP
)},
{
"migraphx/kernels/type_traits.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_TYPE_TRAITS_HPP
)},
{
"migraphx/kernels/vec.hpp"
,
__read
(
MIGRAPHX_IDR_VEC_HPP
)},
{
"migraphx/kernels/types.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_TYPES_HPP
)},
{
"migraphx/kernels/vectorize.hpp"
,
__read
(
MIGRAPHX_IDR_VECTORIZE_HPP
)}};
{
"migraphx/kernels/vec.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_VEC_HPP
)},
return
kernels
;
{
"migraphx/kernels/vectorize.hpp"
,
resource
::
read
(
MIGRAPHX_IDR_VECTORIZE_HPP
)}};
return
{
std
::
begin
(
_kernels_
),
std
::
end
(
_kernels_
)};
}
}
}
// namespace gpu
}
// namespace MIGRAPHX_INLINE_NS
}
// namespace migraphx
src/targets/gpu/kernels/migraphx_kernels.hpp
View file @
53582534
...
@@ -25,14 +25,9 @@
...
@@ -25,14 +25,9 @@
#ifndef MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
#ifndef MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
#define MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
#define MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
#include "migraphx/compile_src.hpp"
#include <string_view>
#include <unordered_map>
namespace
migraphx
{
std
::
unordered_map
<
std
::
string_view
,
std
::
string_view
>
migraphx_kernels
();
inline
namespace
MIGRAPHX_INLINE_NS
{
namespace
gpu
{
std
::
vector
<
src_file
>
migraphx_kernels
();
}
// namespace gpu
}
// namespace MIGRAPHX_INLINE_NS
}
// namespace migraphx
#endif // MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
#endif // MIGRAPHX_GUARD_MIGRAPHX_KERNELS_HPP
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