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
5e35957b
Unverified
Commit
5e35957b
authored
May 17, 2023
by
Chris Austen
Committed by
GitHub
May 17, 2023
Browse files
adjust docker files to support new rocm 5.5 (#1729)
Move CI to support the rocm5.5 release
parent
2140fe19
Changes
17
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
50 additions
and
24 deletions
+50
-24
CMakeLists.txt
CMakeLists.txt
+2
-1
Dockerfile
Dockerfile
+1
-1
hip-clang.docker
hip-clang.docker
+1
-1
src/include/migraphx/auto_any_cast.hpp
src/include/migraphx/auto_any_cast.hpp
+1
-1
src/include/migraphx/check_shapes.hpp
src/include/migraphx/check_shapes.hpp
+2
-2
src/include/migraphx/reflect.hpp
src/include/migraphx/reflect.hpp
+1
-1
src/onnx/parse_instancenorm.cpp
src/onnx/parse_instancenorm.cpp
+1
-2
src/onnx/parse_mean.cpp
src/onnx/parse_mean.cpp
+1
-2
src/onnx/parse_randomnormal_ops.cpp
src/onnx/parse_randomnormal_ops.cpp
+1
-2
src/onnx/parse_randomuniform_ops.cpp
src/onnx/parse_randomuniform_ops.cpp
+1
-2
src/targets/fpga/include/migraphx/fpga/vitis_ai_adapter.hpp
src/targets/fpga/include/migraphx/fpga/vitis_ai_adapter.hpp
+1
-1
src/targets/fpga/vitis_ai_adapter.cpp
src/targets/fpga/vitis_ai_adapter.cpp
+1
-1
src/targets/gpu/compile_hip.cpp
src/targets/gpu/compile_hip.cpp
+10
-3
src/targets/gpu/compile_hip_code_object.cpp
src/targets/gpu/compile_hip_code_object.cpp
+9
-4
src/targets/gpu/include/migraphx/gpu/compile_hip.hpp
src/targets/gpu/include/migraphx/gpu/compile_hip.hpp
+6
-0
test/CMakeLists.txt
test/CMakeLists.txt
+3
-0
test/gpu/jit.cpp
test/gpu/jit.cpp
+8
-0
No files found.
CMakeLists.txt
View file @
5e35957b
...
@@ -151,6 +151,8 @@ rocm_enable_clang_tidy(
...
@@ -151,6 +151,8 @@ rocm_enable_clang_tidy(
-clang-diagnostic-extern-c-compat
-clang-diagnostic-extern-c-compat
-clang-diagnostic-disabled-macro-expansion
-clang-diagnostic-disabled-macro-expansion
-clang-diagnostic-unused-command-line-argument
-clang-diagnostic-unused-command-line-argument
-cppcoreguidelines-avoid-do-while
-cppcoreguidelines-avoid-const-or-ref-data-members
-cppcoreguidelines-explicit-virtual-functions
-cppcoreguidelines-explicit-virtual-functions
-cppcoreguidelines-init-variables
-cppcoreguidelines-init-variables
-cppcoreguidelines-pro-bounds-array-to-pointer-decay
-cppcoreguidelines-pro-bounds-array-to-pointer-decay
...
@@ -198,7 +200,6 @@ rocm_enable_clang_tidy(
...
@@ -198,7 +200,6 @@ rocm_enable_clang_tidy(
EXTRA_ARGS
EXTRA_ARGS
-UNDEBUG
-UNDEBUG
-DMIGRAPHX_USE_CLANG_TIDY
-DMIGRAPHX_USE_CLANG_TIDY
"-Dmain
\\\\
(...
\\\\
)=main
\\\\
(__VA_ARGS__
\\\\
) // NOLINT"
CLANG_ARGS
CLANG_ARGS
-analyzer-max-loop 10
-analyzer-max-loop 10
-analyzer-inline-max-stack-depth 10
-analyzer-inline-max-stack-depth 10
...
...
Dockerfile
View file @
5e35957b
...
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y gnupg2 --no-install-recommends curl &&
...
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y gnupg2 --no-install-recommends curl &&
curl
-sL
http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add -
curl
-sL
http://repo.radeon.com/rocm/rocm.gpg.key | apt-key add -
# Add rocm repository
# Add rocm repository
RUN
sh
-c
'echo deb [arch=amd64 trusted=yes] http://repo.radeon.com/rocm/apt/5.
4.2/ ubuntu
main > /etc/apt/sources.list.d/rocm.list'
RUN
sh
-c
'echo deb [arch=amd64 trusted=yes] http://repo.radeon.com/rocm/apt/5.
5/ focal
main > /etc/apt/sources.list.d/rocm.list'
# Install dependencies
# Install dependencies
RUN
apt-get update
&&
DEBIAN_FRONTEND
=
noninteractive apt-get
install
-y
--allow-unauthenticated
\
RUN
apt-get update
&&
DEBIAN_FRONTEND
=
noninteractive apt-get
install
-y
--allow-unauthenticated
\
...
...
hip-clang.docker
View file @
5e35957b
...
@@ -6,7 +6,7 @@ ARG PREFIX=/usr/local
...
@@ -6,7 +6,7 @@ ARG PREFIX=/usr/local
RUN
dpkg
--add-architecture
i386
RUN
dpkg
--add-architecture
i386
# Add rocm repository
# Add rocm repository
RUN
sh
-c
'echo deb [arch=amd64 trusted=yes] http://repo.radeon.com/rocm/apt/5.
4.2/ ubuntu
main > /etc/apt/sources.list.d/rocm.list'
RUN
sh
-c
'echo deb [arch=amd64 trusted=yes] http://repo.radeon.com/rocm/apt/5.
5/ focal
main > /etc/apt/sources.list.d/rocm.list'
# Install dependencies
# Install dependencies
RUN
apt-get update
&&
DEBIAN_FRONTEND
=
noninteractive apt-get
install
-y
--allow-unauthenticated
\
RUN
apt-get update
&&
DEBIAN_FRONTEND
=
noninteractive apt-get
install
-y
--allow-unauthenticated
\
...
...
src/include/migraphx/auto_any_cast.hpp
View file @
5e35957b
...
@@ -42,7 +42,7 @@ void any_cast()
...
@@ -42,7 +42,7 @@ void any_cast()
template
<
class
T
>
template
<
class
T
>
struct
auto_any_caster
struct
auto_any_caster
{
{
T
&
x
;
T
&
x
;
// NOLINT
template
<
class
U
>
template
<
class
U
>
operator
U
&
()
operator
U
&
()
...
...
src/include/migraphx/check_shapes.hpp
View file @
5e35957b
...
@@ -38,8 +38,8 @@ struct check_shapes
...
@@ -38,8 +38,8 @@ struct check_shapes
{
{
const
shape
*
begin
;
const
shape
*
begin
;
const
shape
*
end
;
const
shape
*
end
;
const
std
::
string
name
;
std
::
string
name
;
const
bool
dynamic_allowed
;
bool
dynamic_allowed
;
check_shapes
(
const
shape
*
b
,
const
shape
*
e
,
const
std
::
string
&
n
,
const
bool
d
=
false
)
check_shapes
(
const
shape
*
b
,
const
shape
*
e
,
const
std
::
string
&
n
,
const
bool
d
=
false
)
:
begin
(
b
),
end
(
e
),
name
(
n
),
dynamic_allowed
(
d
)
:
begin
(
b
),
end
(
e
),
name
(
n
),
dynamic_allowed
(
d
)
...
...
src/include/migraphx/reflect.hpp
View file @
5e35957b
...
@@ -78,7 +78,7 @@ template <class T>
...
@@ -78,7 +78,7 @@ template <class T>
struct
wrapper
struct
wrapper
{
{
using
type
=
typename
remove_rvalue_reference
<
T
>::
type
;
using
type
=
typename
remove_rvalue_reference
<
T
>::
type
;
type
data
;
type
data
;
// NOLINT
type
get
()
const
{
return
data
;
}
type
get
()
const
{
return
data
;
}
};
};
...
...
src/onnx/parse_instancenorm.cpp
View file @
5e35957b
...
@@ -32,8 +32,7 @@ namespace onnx {
...
@@ -32,8 +32,7 @@ namespace onnx {
struct
parse_instancenorm
:
op_parser
<
parse_instancenorm
>
struct
parse_instancenorm
:
op_parser
<
parse_instancenorm
>
{
{
const
std
::
set
<
shape
::
type_t
>
valid_types
=
{
std
::
set
<
shape
::
type_t
>
valid_types
=
{
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"InstanceNormalization"
}};
}
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"InstanceNormalization"
}};
}
...
...
src/onnx/parse_mean.cpp
View file @
5e35957b
...
@@ -33,8 +33,7 @@ namespace onnx {
...
@@ -33,8 +33,7 @@ namespace onnx {
struct
parse_mean
:
op_parser
<
parse_mean
>
struct
parse_mean
:
op_parser
<
parse_mean
>
{
{
const
std
::
set
<
shape
::
type_t
>
float_types
=
{
std
::
set
<
shape
::
type_t
>
float_types
=
{
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"Mean"
}};
}
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"Mean"
}};
}
...
...
src/onnx/parse_randomnormal_ops.cpp
View file @
5e35957b
...
@@ -35,8 +35,7 @@ namespace onnx {
...
@@ -35,8 +35,7 @@ namespace onnx {
struct
parse_randomnormal_ops
:
op_parser
<
parse_randomnormal_ops
>
struct
parse_randomnormal_ops
:
op_parser
<
parse_randomnormal_ops
>
{
{
const
std
::
set
<
shape
::
type_t
>
valid_types
=
{
std
::
set
<
shape
::
type_t
>
valid_types
=
{
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"RandomNormal"
},
{
"RandomNormalLike"
}};
}
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"RandomNormal"
},
{
"RandomNormalLike"
}};
}
...
...
src/onnx/parse_randomuniform_ops.cpp
View file @
5e35957b
...
@@ -35,8 +35,7 @@ namespace onnx {
...
@@ -35,8 +35,7 @@ namespace onnx {
struct
parse_randomuniform_ops
:
op_parser
<
parse_randomuniform_ops
>
struct
parse_randomuniform_ops
:
op_parser
<
parse_randomuniform_ops
>
{
{
const
std
::
set
<
shape
::
type_t
>
valid_types
=
{
std
::
set
<
shape
::
type_t
>
valid_types
=
{
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
shape
::
float_type
,
shape
::
half_type
,
shape
::
double_type
};
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"RandomUniform"
},
{
"RandomUniformLike"
}};
}
std
::
vector
<
op_desc
>
operators
()
const
{
return
{{
"RandomUniform"
},
{
"RandomUniformLike"
}};
}
...
...
src/targets/fpga/include/migraphx/fpga/vitis_ai_adapter.hpp
View file @
5e35957b
...
@@ -41,7 +41,7 @@ class x_model
...
@@ -41,7 +41,7 @@ class x_model
void
set_shape
(
migraphx
::
shape
);
void
set_shape
(
migraphx
::
shape
);
};
};
x_model
create_xmodel
(
migraphx
::
module_ref
mod
);
x_model
create_xmodel
(
migraphx
::
const_
module_ref
mod
);
migraphx
::
argument
execute
(
const
x_model
&
xmodel
,
migraphx
::
argument
execute
(
const
x_model
&
xmodel
,
const
migraphx
::
shape
&
output_shape
,
const
migraphx
::
shape
&
output_shape
,
...
...
src/targets/fpga/vitis_ai_adapter.cpp
View file @
5e35957b
...
@@ -33,7 +33,7 @@ migraphx::shape x_model::get_shape() const { return shape; };
...
@@ -33,7 +33,7 @@ migraphx::shape x_model::get_shape() const { return shape; };
void
x_model
::
set_shape
(
migraphx
::
shape
s
)
{
shape
=
s
;
}
void
x_model
::
set_shape
(
migraphx
::
shape
s
)
{
shape
=
s
;
}
x_model
create_xmodel
(
const
migraphx
::
module_ref
mod
)
x_model
create_xmodel
(
migraphx
::
const_
module_ref
mod
)
{
{
std
::
cout
<<
"Calling an external function: create_xmodel!
\n
"
;
std
::
cout
<<
"Calling an external function: create_xmodel!
\n
"
;
x_model
xmodel
;
x_model
xmodel
;
...
...
src/targets/gpu/compile_hip.cpp
View file @
5e35957b
...
@@ -56,9 +56,6 @@ MIGRAPHX_DECLARE_ENV_VAR(MIGRAPHX_GPU_DUMP_SRC);
...
@@ -56,9 +56,6 @@ MIGRAPHX_DECLARE_ENV_VAR(MIGRAPHX_GPU_DUMP_SRC);
#ifdef MIGRAPHX_USE_HIPRTC
#ifdef MIGRAPHX_USE_HIPRTC
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_HIPRTC
);
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS
);
std
::
string
hiprtc_error
(
hiprtcResult
err
,
const
std
::
string
&
msg
)
std
::
string
hiprtc_error
(
hiprtcResult
err
,
const
std
::
string
&
msg
)
{
{
return
"hiprtc: "
+
(
hiprtcGetErrorString
(
err
)
+
(
": "
+
msg
));
return
"hiprtc: "
+
(
hiprtcGetErrorString
(
err
)
+
(
": "
+
msg
));
...
@@ -194,6 +191,7 @@ std::vector<std::vector<char>> compile_hip_src_with_hiprtc(std::vector<hiprtc_sr
...
@@ -194,6 +191,7 @@ std::vector<std::vector<char>> compile_hip_src_with_hiprtc(std::vector<hiprtc_sr
options
.
push_back
(
"-DMIGRAPHX_HAS_DPP=0"
);
options
.
push_back
(
"-DMIGRAPHX_HAS_DPP=0"
);
options
.
push_back
(
"-DMIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS=1"
);
options
.
push_back
(
"-DMIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS=1"
);
options
.
push_back
(
"-Wno-reserved-identifier"
);
options
.
push_back
(
"-Wno-reserved-identifier"
);
options
.
push_back
(
"-Wno-unused-parameter"
);
options
.
push_back
(
"-Wno-gnu-line-marker"
);
options
.
push_back
(
"-Wno-gnu-line-marker"
);
options
.
push_back
(
"-Wno-old-style-cast"
);
options
.
push_back
(
"-Wno-old-style-cast"
);
}
}
...
@@ -216,6 +214,15 @@ std::vector<std::vector<char>>
...
@@ -216,6 +214,15 @@ std::vector<std::vector<char>>
compile_hip_src
(
const
std
::
vector
<
src_file
>&
srcs
,
std
::
string
params
,
const
std
::
string
&
arch
)
compile_hip_src
(
const
std
::
vector
<
src_file
>&
srcs
,
std
::
string
params
,
const
std
::
string
&
arch
)
{
{
std
::
vector
<
hiprtc_src_file
>
hsrcs
{
srcs
.
begin
(),
srcs
.
end
()};
std
::
vector
<
hiprtc_src_file
>
hsrcs
{
srcs
.
begin
(),
srcs
.
end
()};
if
(
enabled
(
MIGRAPHX_GPU_DUMP_SRC
{}))
{
for
(
const
auto
&
src
:
srcs
)
{
if
(
src
.
path
.
extension
()
!=
".cpp"
)
continue
;
std
::
cout
<<
std
::
string
(
src
.
content
.
first
,
src
.
len
())
<<
std
::
endl
;
}
}
auto
p
=
dynamic_loader
::
path
(
&
compile_hip_src_with_hiprtc
);
auto
p
=
dynamic_loader
::
path
(
&
compile_hip_src_with_hiprtc
);
auto
driver
=
p
.
parent_path
().
parent_path
()
/
"bin"
/
"migraphx-hiprtc-driver"
;
auto
driver
=
p
.
parent_path
().
parent_path
()
/
"bin"
/
"migraphx-hiprtc-driver"
;
...
...
src/targets/gpu/compile_hip_code_object.cpp
View file @
5e35957b
...
@@ -135,10 +135,15 @@ compute_global_for(context& ctx, std::size_t n, std::size_t over)
...
@@ -135,10 +135,15 @@ compute_global_for(context& ctx, std::size_t n, std::size_t over)
std
::
size_t
max_global
=
ctx
.
get_current_device
().
get_cu_count
()
*
std
::
size_t
max_global
=
ctx
.
get_current_device
().
get_cu_count
()
*
ctx
.
get_current_device
().
get_max_workitems_per_cu
();
ctx
.
get_current_device
().
get_max_workitems_per_cu
();
return
[
n
,
over
,
max_global
](
std
::
size_t
local
)
{
return
[
n
,
over
,
max_global
](
std
::
size_t
local
)
{
std
::
size_t
groups
=
(
n
+
local
-
1
)
/
local
;
std
::
size_t
num_elements
=
n
;
std
::
size_t
groups
=
(
num_elements
+
local
-
1
)
/
local
;
std
::
size_t
max_blocks
=
max_global
/
local
;
std
::
size_t
max_blocks
=
max_global
/
local
;
std
::
size_t
nglobal
=
std
::
min
(
max_blocks
*
over
,
groups
)
*
local
;
std
::
size_t
nglobal
=
std
::
min
(
max_blocks
*
over
,
groups
)
*
local
;
return
std
::
min
(
nglobal
,
n
);
#ifdef MIGRAPHX_USE_HIPRTC
if
(
enabled
(
MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS
{}))
num_elements
=
((
num_elements
+
local
-
1
)
/
local
)
*
local
;
#endif
return
std
::
min
(
nglobal
,
num_elements
);
};
};
}
}
...
...
src/targets/gpu/include/migraphx/gpu/compile_hip.hpp
View file @
5e35957b
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <migraphx/config.hpp>
#include <migraphx/config.hpp>
#include <migraphx/filesystem.hpp>
#include <migraphx/filesystem.hpp>
#include <migraphx/compile_src.hpp>
#include <migraphx/compile_src.hpp>
#include <migraphx/env.hpp>
#include <migraphx/functional.hpp>
#include <migraphx/functional.hpp>
#include <string>
#include <string>
#include <utility>
#include <utility>
...
@@ -36,6 +37,11 @@ namespace migraphx {
...
@@ -36,6 +37,11 @@ namespace migraphx {
inline
namespace
MIGRAPHX_INLINE_NS
{
inline
namespace
MIGRAPHX_INLINE_NS
{
namespace
gpu
{
namespace
gpu
{
#ifdef MIGRAPHX_USE_HIPRTC
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_HIPRTC
);
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS
);
#endif
struct
hiprtc_src_file
struct
hiprtc_src_file
{
{
hiprtc_src_file
()
=
default
;
hiprtc_src_file
()
=
default
;
...
...
test/CMakeLists.txt
View file @
5e35957b
...
@@ -134,6 +134,9 @@ if(MIGRAPHX_ENABLE_GPU)
...
@@ -134,6 +134,9 @@ if(MIGRAPHX_ENABLE_GPU)
COST 10
COST 10
RESOURCE_LOCK gpu
RESOURCE_LOCK gpu
)
)
if
(
MIGRAPHX_USE_HIPRTC
)
target_compile_definitions
(
test_gpu_
${
BASE_NAME
}
PUBLIC -DMIGRAPHX_USE_HIPRTC
)
endif
()
target_link_libraries
(
test_gpu_
${
BASE_NAME
}
migraphx_gpu migraphx_kernels
)
target_link_libraries
(
test_gpu_
${
BASE_NAME
}
migraphx_gpu migraphx_kernels
)
endforeach
()
endforeach
()
endif
()
endif
()
...
...
test/gpu/jit.cpp
View file @
5e35957b
...
@@ -206,8 +206,16 @@ TEST_CASE(compile_warnings)
...
@@ -206,8 +206,16 @@ TEST_CASE(compile_warnings)
EXPECT
(
not
compile
(
""
).
empty
());
EXPECT
(
not
compile
(
""
).
empty
());
EXPECT
(
not
compile
(
"-Wunused-parameter -Wno-error"
).
empty
());
EXPECT
(
not
compile
(
"-Wunused-parameter -Wno-error"
).
empty
());
EXPECT
(
not
compile
(
"-Wno-unused-parameter -Werror"
).
empty
());
EXPECT
(
not
compile
(
"-Wno-unused-parameter -Werror"
).
empty
());
#ifdef MIGRAPHX_USE_HIPRTC
if
(
not
migraphx
::
enabled
(
migraphx
::
gpu
::
MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS
{}))
{
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Werror=unused-parameter"
);
}));
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Werror=unused-parameter"
);
}));
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Wunused-parameter -Werror"
);
}));
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Wunused-parameter -Werror"
);
}));
}
#else
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Werror=unused-parameter"
);
}));
EXPECT
(
test
::
throws
([
&
]
{
compile
(
"-Wunused-parameter -Werror"
);
}));
#endif
}
}
TEST_CASE
(
code_object_hip
)
TEST_CASE
(
code_object_hip
)
...
...
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