Unverified Commit ee80cee9 authored by Paul Fultz II's avatar Paul Fultz II Committed by GitHub
Browse files

Merge branch 'master' into gpu_slice_test

parents 6d06226d f958d56f
......@@ -7,6 +7,7 @@
#include <iostream>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
struct shape_impl
{
......@@ -190,4 +191,5 @@ std::ostream& operator<<(std::ostream& os, const shape& x)
return os;
}
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -5,6 +5,7 @@
#include <migraph/literal.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
struct find_add_lit_broadcast
{
......@@ -60,4 +61,5 @@ struct find_add_lit_broadcast
void simplify_algebra::apply(program& p) const { match::find_matches(p, find_add_lit_broadcast{}); }
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -7,6 +7,7 @@
#include <unordered_set>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
bool is_reshaper(const std::string& name)
{
......@@ -59,4 +60,5 @@ void simplify_reshapes::apply(program& p) const
}
}
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
add_library(migraph_cpu
cpu_target.cpp
cpu_lowering.cpp
target.cpp
lowering.cpp
gemm.cpp
)
......
#include <migraph/cpu/cpu_target.hpp>
#include <migraph/cpu/cpu_lowering.hpp>
#include <migraph/auto_contiguous.hpp>
namespace migraph {
namespace cpu {
std::string cpu_target::name() const { return "cpu"; }
std::vector<pass> cpu_target::get_passes(migraph::context&) const
{
return {auto_contiguous{}, cpu_lowering{}};
}
} // namespace cpu
} // namespace migraph
......@@ -4,6 +4,7 @@
#include <blaze/math/CustomMatrix.h>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
template <class T>
......@@ -93,5 +94,5 @@ void migemm(
}
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#ifndef MIGRAPH_GUARD_RTGLIB_CONTEXT_HPP
#define MIGRAPH_GUARD_RTGLIB_CONTEXT_HPP
#include <migraph/config.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
struct context
......@@ -10,6 +13,7 @@ struct context
};
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#endif
......@@ -2,15 +2,17 @@
#define MIGRAPH_GUARD_RTGLIB_CPU_GEMM_HPP
#include <migraph/argument.hpp>
#include <migraph/config.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
void migemm(
const argument& c_arg, const argument& a_arg, const argument& b_arg, float alpha, float beta);
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#endif
......@@ -2,18 +2,20 @@
#define MIGRAPH_GUARD_RTGLIB_CPU_LOWERING_HPP
#include <migraph/program.hpp>
#include <migraph/config.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
struct cpu_lowering
struct lowering
{
std::string name() const { return "cpu::lowering"; }
void apply(program& p) const;
};
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#endif
......@@ -3,11 +3,13 @@
#include <migraph/program.hpp>
#include <migraph/cpu/context.hpp>
#include <migraph/config.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
struct cpu_target
struct target
{
std::string name() const;
std::vector<pass> get_passes(migraph::context& ctx) const;
......@@ -15,7 +17,7 @@ struct cpu_target
};
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#endif
#include <migraph/cpu/cpu_lowering.hpp>
#include <migraph/cpu/lowering.hpp>
#include <migraph/instruction.hpp>
#include <migraph/dfor.hpp>
#include <migraph/operators.hpp>
......@@ -10,6 +10,7 @@
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
template <typename T>
......@@ -606,6 +607,7 @@ struct cpu_apply
apply_map["sin"] = simple_op<cpu_unary<sin_op>>();
apply_map["cos"] = simple_op<cpu_unary<cos_op>>();
apply_map["tan"] = simple_op<cpu_unary<tan_op>>();
apply_map["relu"] = simple_op<cpu_unary<relu_op>>();
apply_map["add"] = simple_op<cpu_binary<add_op>>();
apply_map["sub"] = simple_op<cpu_binary<sub_op>>();
apply_map["mul"] = simple_op<cpu_binary<mul_op>>();
......@@ -619,11 +621,7 @@ struct cpu_apply
init();
for(auto it : iterator_for(*prog))
{
if(it->name() == "activation")
{
apply_activation(it);
}
else if(it->name() == "pooling")
if(it->name() == "pooling")
{
apply_pooling(it);
}
......@@ -647,13 +645,6 @@ struct cpu_apply
prog->replace_instruction(ins, T{op}, ins->inputs());
}
void apply_activation(instruction_ref ins)
{
auto&& op = any_cast<op::activation>(ins->get_operator());
if(op.mode == "relu")
prog->replace_instruction(ins, cpu_unary<relu_op>{}, ins->inputs());
}
void apply_pooling(instruction_ref ins)
{
auto&& op = any_cast<op::pooling>(ins->get_operator());
......@@ -664,8 +655,8 @@ struct cpu_apply
}
};
void cpu_lowering::apply(program& p) const { cpu_apply{&p}.apply(); }
void lowering::apply(program& p) const { cpu_apply{&p}.apply(); }
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#include <migraph/cpu/target.hpp>
#include <migraph/cpu/lowering.hpp>
#include <migraph/auto_contiguous.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace cpu {
std::string target::name() const { return "cpu"; }
std::vector<pass> target::get_passes(migraph::context&) const
{
return {auto_contiguous{}, lowering{}};
}
} // namespace cpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
#include <migraph/gpu/add.hpp>
#include <migraph/operators.hpp>
#include <migraph/manage_ptr.hpp>
#include <migraph/config.hpp>
#include <migraph/gpu/miopen.hpp>
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
shape hip_add::compute_shape(const std::vector<shape>& inputs) const
......@@ -49,5 +51,5 @@ argument miopen_add::compute(context& ctx,
}
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -5,6 +5,7 @@
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
shape miopen_batch_norm_inference::compute_shape(const std::vector<shape>& inputs) const
......@@ -42,5 +43,5 @@ argument miopen_batch_norm_inference::compute(context& ctx,
}
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -6,6 +6,7 @@
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
shape hip_concat::compute_shape(std::vector<shape> inputs) const
......@@ -23,5 +24,5 @@ argument hip_concat::compute(context& ctx,
}
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -5,6 +5,7 @@
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
shape miopen_contiguous::compute_shape(const std::vector<shape>& inputs) const
......@@ -24,5 +25,5 @@ argument miopen_contiguous::compute(context& ctx,
}
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -5,6 +5,7 @@
#include <utility>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
shape miopen_convolution::compute_shape(const std::vector<shape>& inputs) const
......@@ -81,5 +82,5 @@ shape miopen_convolution::compile(context& ctx,
}
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -2,6 +2,7 @@
#include <migraph/gpu/device/nary.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
namespace device {
......@@ -21,4 +22,5 @@ void add(hipStream_t stream,
} // namespace device
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -2,6 +2,7 @@
#include <migraph/gpu/device/nary.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
namespace device {
......@@ -26,4 +27,5 @@ void add_relu(hipStream_t stream,
} // namespace device
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
......@@ -5,6 +5,7 @@
#include <migraph/gpu/device/launch.hpp>
namespace migraph {
inline namespace MIGRAPH_INLINE_NS {
namespace gpu {
namespace device {
......@@ -33,4 +34,5 @@ argument concat(hipStream_t stream,
} // namespace device
} // namespace gpu
} // namespace MIGRAPH_INLINE_NS
} // namespace migraph
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