Commit f85ba189 authored by Khalique Ahmed's avatar Khalique Ahmed
Browse files

Merge branch 'pointwise-nhwc' of...

Merge branch 'pointwise-nhwc' of https://github.com/ROCmSoftwarePlatform/AMDMIGraphX into nhwc_workaround
parents 122ffe97 dfbab16e
......@@ -35,7 +35,7 @@ inline namespace MIGRAPHX_INLINE_NS {
struct dynamic_loader_impl;
struct dynamic_loader
struct MIGRAPHX_EXPORT dynamic_loader
{
template <class T>
static fs::path path(T* address)
......
......@@ -37,7 +37,7 @@ struct module;
* Remove memory allocations. This will create a parameter which is the max of all memory used in
* the program.
*/
struct eliminate_allocation
struct MIGRAPHX_EXPORT eliminate_allocation
{
std::string allocation_op{};
std::size_t alignment = 32;
......
......@@ -36,7 +36,7 @@ struct module;
/**
* Remove identical instructions.
*/
struct eliminate_common_subexpression
struct MIGRAPHX_EXPORT eliminate_common_subexpression
{
std::string name() const { return "eliminate_common_subexpression"; }
void apply(module& m) const;
......
......@@ -37,7 +37,7 @@ struct module;
/**
* Remove concat operators by having each operator can write to different chunk of memory.
*/
struct eliminate_concat
struct MIGRAPHX_EXPORT eliminate_concat
{
concat_optimization concat_opt;
std::string name() const { return "eliminate_concat"; }
......
......@@ -36,7 +36,7 @@ struct module;
/**
* Remove contiguous instructions by checking if the operator can use non-standard shapes.
*/
struct eliminate_contiguous
struct MIGRAPHX_EXPORT eliminate_contiguous
{
std::string op_name;
std::string name() const { return "eliminate_contiguous"; }
......
......@@ -38,7 +38,7 @@ struct module;
* Remove data types. This will instert convert operators so the data type
* is not used by any operator.
*/
struct eliminate_data_type
struct MIGRAPHX_EXPORT eliminate_data_type
{
std::set<shape::type_t> types;
shape::type_t target_type;
......
......@@ -38,7 +38,7 @@ struct module;
* preserve the semantics of previous program state, therefore dead code elimination
* should not be used afterwards.
*/
struct eliminate_identity
struct MIGRAPHX_EXPORT eliminate_identity
{
std::string name() const { return "eliminate_identity"; }
void apply(module& m) const;
......
......@@ -39,7 +39,7 @@ struct module;
* Remove pads if they can be written as an
* attribute to another op (im2col, convolution, pooling)
*/
struct eliminate_pad
struct MIGRAPHX_EXPORT eliminate_pad
{
std::string name() const { return "eliminate_pad"; }
......
......@@ -38,13 +38,13 @@ inline namespace MIGRAPHX_INLINE_NS {
static const char* value() { return #x; } \
}; // NOLINT
bool enabled(const char* name);
bool disabled(const char* name);
std::vector<std::string> env(const char* name);
MIGRAPHX_EXPORT bool enabled(const char* name);
MIGRAPHX_EXPORT bool disabled(const char* name);
MIGRAPHX_EXPORT std::vector<std::string> env(const char* name);
std::size_t value_of(const char* name, std::size_t fallback = 0);
MIGRAPHX_EXPORT std::size_t value_of(const char* name, std::size_t fallback = 0);
std::string string_value_of(const char* name, std::string fallback = "");
MIGRAPHX_EXPORT std::string string_value_of(const char* name, std::string fallback = "");
template <class T>
bool enabled(T)
......
......@@ -31,11 +31,13 @@
namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS {
std::vector<char> read_buffer(const std::string& filename, size_t offset = 0, size_t nbytes = 0);
std::string read_string(const std::string& filename);
MIGRAPHX_EXPORT std::vector<char>
read_buffer(const std::string& filename, size_t offset = 0, size_t nbytes = 0);
MIGRAPHX_EXPORT std::string read_string(const std::string& filename);
void write_buffer(const std::string& filename, const char* buffer, std::size_t size);
void write_buffer(const std::string& filename, const std::vector<char>& buffer);
MIGRAPHX_EXPORT void
write_buffer(const std::string& filename, const char* buffer, std::size_t size);
MIGRAPHX_EXPORT void write_buffer(const std::string& filename, const std::vector<char>& buffer);
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
......
......@@ -32,7 +32,7 @@ inline namespace MIGRAPHX_INLINE_NS {
struct module_pass_manager;
struct fuse_pointwise
struct MIGRAPHX_EXPORT fuse_pointwise
{
std::string name() const { return "fuse_pointwise"; }
void apply(module_pass_manager& mpm) const;
......
......@@ -32,7 +32,7 @@ inline namespace MIGRAPHX_INLINE_NS {
struct module_pass_manager;
struct fuse_reduce
struct MIGRAPHX_EXPORT fuse_reduce
{
std::string name() const { return "fuse_reduce"; }
void apply(module_pass_manager& mpm) const;
......
......@@ -124,13 +124,13 @@ auto fill_tensor_data(const migraphx::shape& s, unsigned long value = 0)
return result;
}
argument fill_argument(shape s, unsigned long value = 0);
MIGRAPHX_EXPORT argument fill_argument(shape s, unsigned long value = 0);
argument generate_argument(shape s, unsigned long seed = 0);
MIGRAPHX_EXPORT argument generate_argument(shape s, unsigned long seed = 0);
literal generate_literal(shape s, unsigned long seed = 0);
MIGRAPHX_EXPORT literal generate_literal(shape s, unsigned long seed = 0);
literal abs(literal l);
MIGRAPHX_EXPORT literal abs(literal l);
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
......
......@@ -33,7 +33,7 @@ inline namespace MIGRAPHX_INLINE_NS {
struct module;
struct inline_module
struct MIGRAPHX_EXPORT inline_module
{
std::string name() const { return "inline_module"; }
void apply(module& m) const;
......
......@@ -38,7 +38,7 @@ struct module;
/**
* insert pads if attribute of padding is asymmetrical
*/
struct insert_pad
struct MIGRAPHX_EXPORT insert_pad
{
std::string name() const { return "insert_pad"; }
......
......@@ -37,14 +37,15 @@
namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS {
shape compute_shape(const operation& op, const std::vector<instruction_ref>& args);
shape compute_shape(const operation& op,
const std::vector<instruction_ref>& args,
const std::vector<module_ref>& mods);
std::vector<shape> to_shapes(const std::vector<instruction_ref>& args);
std::vector<shape> try_compute_shape(const operation& op, const std::vector<shape>& inputs);
struct instruction
MIGRAPHX_EXPORT shape compute_shape(const operation& op, const std::vector<instruction_ref>& args);
MIGRAPHX_EXPORT shape compute_shape(const operation& op,
const std::vector<instruction_ref>& args,
const std::vector<module_ref>& mods);
MIGRAPHX_EXPORT std::vector<shape> to_shapes(const std::vector<instruction_ref>& args);
MIGRAPHX_EXPORT std::vector<shape> try_compute_shape(const operation& op,
const std::vector<shape>& inputs);
struct MIGRAPHX_EXPORT instruction
{
instruction() {}
......
......@@ -34,7 +34,7 @@ inline namespace MIGRAPHX_INLINE_NS {
struct instruction;
using instruction_ref = std::list<instruction>::iterator;
migraphx::instruction* as_address(const instruction_ref& ins) noexcept;
MIGRAPHX_EXPORT migraphx::instruction* as_address(const instruction_ref& ins) noexcept;
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
......
......@@ -31,10 +31,10 @@
namespace migraphx {
inline namespace MIGRAPHX_INLINE_NS {
std::string to_pretty_json_string(const value& val, std::size_t indent = 4);
std::string to_json_string(const value& val);
value from_json_string(const std::string& str);
value from_json_string(const char* str, std::size_t size);
MIGRAPHX_EXPORT std::string to_pretty_json_string(const value& val, std::size_t indent = 4);
MIGRAPHX_EXPORT std::string to_json_string(const value& val);
MIGRAPHX_EXPORT value from_json_string(const std::string& str);
MIGRAPHX_EXPORT value from_json_string(const char* str, std::size_t size);
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
......
......@@ -36,7 +36,7 @@ struct module_pass_manager;
/**
* Transform convolutions to nhwc
*/
struct layout_nhwc
struct MIGRAPHX_EXPORT layout_nhwc
{
bool skip_elim_contiguous = false;
std::string name() const { return "layout_nhwc"; }
......
......@@ -147,8 +147,8 @@ literal transform(literal l1, literal l2, F f)
return result;
}
void migraphx_to_value(value& v, const literal& l);
void migraphx_from_value(const value& v, literal& l);
MIGRAPHX_EXPORT void migraphx_to_value(value& v, const literal& l);
MIGRAPHX_EXPORT void migraphx_from_value(const value& v, literal& l);
} // namespace MIGRAPHX_INLINE_NS
} // namespace migraphx
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment