Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
N
ngraph
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ngraph
Commits
3d9004c0
Unverified
Commit
3d9004c0
authored
Feb 11, 2020
by
Chris Sullivan
Committed by
GitHub
Feb 11, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bring NVIDIA GPU backend up to date with nGraph master. (#4306)
Co-authored-by:
Robert Kimball
<
robert.kimball@intel.com
>
parent
670c74af
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
870 additions
and
384 deletions
+870
-384
cudnn_emitter.cpp
src/ngraph/runtime/gpu/cudnn_emitter.cpp
+5
-0
cudnn_emitter.hpp
src/ngraph/runtime/gpu/cudnn_emitter.hpp
+13
-6
gpu_backend.cpp
src/ngraph/runtime/gpu/gpu_backend.cpp
+4
-13
gpu_backend.hpp
src/ngraph/runtime/gpu/gpu_backend.hpp
+3
-0
gpu_compiled_function.hpp
src/ngraph/runtime/gpu/gpu_compiled_function.hpp
+1
-1
gpu_emitter.cpp
src/ngraph/runtime/gpu/gpu_emitter.cpp
+828
-358
gpu_emitter.hpp
src/ngraph/runtime/gpu/gpu_emitter.hpp
+1
-1
gpu_runtime_constructor.hpp
src/ngraph/runtime/gpu/gpu_runtime_constructor.hpp
+2
-2
batch_norm.cpp
src/ngraph/runtime/gpu/op/batch_norm.cpp
+3
-0
batch_norm.hpp
src/ngraph/runtime/gpu/op/batch_norm.hpp
+2
-0
op_tbl.hpp
src/ngraph/runtime/gpu/op/op_tbl.hpp
+3
-3
rnn.cpp
src/ngraph/runtime/gpu/op/rnn.cpp
+3
-0
rnn.hpp
src/ngraph/runtime/gpu/op/rnn.hpp
+2
-0
No files found.
src/ngraph/runtime/gpu/cudnn_emitter.cpp
View file @
3d9004c0
...
@@ -20,12 +20,17 @@
...
@@ -20,12 +20,17 @@
#include <vector>
#include <vector>
#include "ngraph/log.hpp"
#include "ngraph/log.hpp"
#include "ngraph/op/convolution.hpp"
#include "ngraph/op/max.hpp"
#include "ngraph/op/max_pool.hpp"
#include "ngraph/op/min.hpp"
#include "ngraph/runtime/gpu/cudnn_emitter.hpp"
#include "ngraph/runtime/gpu/cudnn_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_invoke.hpp"
#include "ngraph/runtime/gpu/gpu_invoke.hpp"
#include "ngraph/runtime/gpu/gpu_primitive_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_primitive_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_runtime_context.hpp"
#include "ngraph/runtime/gpu/gpu_runtime_context.hpp"
#include "ngraph/runtime/gpu/gpu_util.hpp"
#include "ngraph/runtime/gpu/gpu_util.hpp"
#include "ngraph/runtime/gpu/op/rnn.hpp"
#include "ngraph/runtime/gpu/type_info.hpp"
#include "ngraph/runtime/gpu/type_info.hpp"
#include "ngraph/util.hpp"
#include "ngraph/util.hpp"
...
...
src/ngraph/runtime/gpu/cudnn_emitter.hpp
View file @
3d9004c0
...
@@ -31,14 +31,21 @@
...
@@ -31,14 +31,21 @@
#include "ngraph/runtime/gpu/gpu_runtime_context.hpp"
#include "ngraph/runtime/gpu/gpu_runtime_context.hpp"
#include "ngraph/shape.hpp"
#include "ngraph/shape.hpp"
#include "ngraph/op/convolution.hpp"
#include "ngraph/op/max.hpp"
#include "ngraph/op/max_pool.hpp"
#include "ngraph/op/min.hpp"
#include "ngraph/runtime/gpu/op/rnn.hpp"
namespace
ngraph
namespace
ngraph
{
{
namespace
op
{
class
Convolution
;
class
ConvolutionBackpropData
;
class
ConvolutionBackpropFilters
;
class
MaxPool
;
class
Max
;
class
Min
;
namespace
gpu
{
class
Rnn
;
}
}
namespace
runtime
namespace
runtime
{
{
namespace
gpu
namespace
gpu
...
...
src/ngraph/runtime/gpu/gpu_backend.cpp
View file @
3d9004c0
...
@@ -33,20 +33,11 @@
...
@@ -33,20 +33,11 @@
using
namespace
ngraph
;
using
namespace
ngraph
;
using
namespace
std
;
using
namespace
std
;
extern
"C"
runtime
::
BackendConstructor
*
get_backend_constructor_pointer
()
extern
"C"
GPU_BACKEND_API
void
ngraph_register_gpu_backend
()
{
{
class
LocalBackendConstructor
:
public
runtime
::
BackendConstructor
runtime
::
BackendManager
::
register_backend
(
"GPU"
,
[](
const
std
::
string
&
/* config */
)
{
{
return
make_shared
<
runtime
::
gpu
::
GPU_Backend
>
();
public
:
});
std
::
shared_ptr
<
runtime
::
Backend
>
create
(
const
std
::
string
&
config
)
override
{
return
std
::
make_shared
<
runtime
::
gpu
::
GPU_Backend
>
();
}
};
static
unique_ptr
<
runtime
::
BackendConstructor
>
s_backend_constructor
(
new
LocalBackendConstructor
());
return
s_backend_constructor
.
get
();
}
}
runtime
::
gpu
::
GPU_Backend
::
GPU_Backend
()
runtime
::
gpu
::
GPU_Backend
::
GPU_Backend
()
...
...
src/ngraph/runtime/gpu/gpu_backend.hpp
View file @
3d9004c0
...
@@ -19,7 +19,9 @@
...
@@ -19,7 +19,9 @@
#include <map>
#include <map>
#include <memory>
#include <memory>
#include "gpu_backend_visibility.hpp"
#include "ngraph/runtime/backend.hpp"
#include "ngraph/runtime/backend.hpp"
#include "ngraph/runtime/backend_manager.hpp"
namespace
ngraph
namespace
ngraph
{
{
...
@@ -37,6 +39,7 @@ namespace ngraph
...
@@ -37,6 +39,7 @@ namespace ngraph
using
EntryPoint_t
=
void
(
void
**
inputs
,
void
**
outputs
,
GPURuntimeContext
*
ctx
);
using
EntryPoint_t
=
void
(
void
**
inputs
,
void
**
outputs
,
GPURuntimeContext
*
ctx
);
using
EntryPoint
=
std
::
function
<
EntryPoint_t
>
;
using
EntryPoint
=
std
::
function
<
EntryPoint_t
>
;
BackendConstructor
GPU_BACKEND_API
get_backend_constructor_pointer
();
class
GPU_Backend
:
public
Backend
class
GPU_Backend
:
public
Backend
{
{
public
:
public
:
...
...
src/ngraph/runtime/gpu/gpu_compiled_function.hpp
View file @
3d9004c0
...
@@ -100,7 +100,7 @@ namespace ngraph
...
@@ -100,7 +100,7 @@ namespace ngraph
const
std
::
string
&
output_name
)
=
0
;
const
std
::
string
&
output_name
)
=
0
;
std
::
shared_ptr
<
ngraph
::
Function
>
m_function
;
std
::
shared_ptr
<
ngraph
::
Function
>
m_function
;
std
::
unordered_map
<
std
::
shared_ptr
<
Function
>
,
std
::
list
<
std
::
shared_ptr
<
Node
>>>
std
::
unordered_map
<
std
::
shared_ptr
<
Function
>
,
std
::
vector
<
std
::
shared_ptr
<
Node
>>>
m_function_ordered_ops
;
m_function_ordered_ops
;
bool
m_emit_timing
;
bool
m_emit_timing
;
...
...
src/ngraph/runtime/gpu/gpu_emitter.cpp
View file @
3d9004c0
...
@@ -30,104 +30,7 @@
...
@@ -30,104 +30,7 @@
#include <vector>
#include <vector>
#include "ngraph/node.hpp"
#include "ngraph/node.hpp"
#include "ngraph/op/abs.hpp"
#include "ngraph/ops.hpp"
#include "ngraph/op/acos.hpp"
#include "ngraph/op/add.hpp"
#include "ngraph/op/all.hpp"
#include "ngraph/op/allreduce.hpp"
#include "ngraph/op/and.hpp"
#include "ngraph/op/any.hpp"
#include "ngraph/op/argmax.hpp"
#include "ngraph/op/argmin.hpp"
#include "ngraph/op/asin.hpp"
#include "ngraph/op/atan.hpp"
#include "ngraph/op/avg_pool.hpp"
#include "ngraph/op/batch_norm.hpp"
#include "ngraph/op/broadcast.hpp"
#include "ngraph/op/broadcast_distributed.hpp"
#include "ngraph/op/ceiling.hpp"
#include "ngraph/op/concat.hpp"
#include "ngraph/op/constant.hpp"
#include "ngraph/op/convert.hpp"
#include "ngraph/op/convolution.hpp"
#include "ngraph/op/cos.hpp"
#include "ngraph/op/cosh.hpp"
#include "ngraph/op/dequantize.hpp"
#include "ngraph/op/divide.hpp"
#include "ngraph/op/dot.hpp"
#include "ngraph/op/embedding_lookup.hpp"
#include "ngraph/op/equal.hpp"
#include "ngraph/op/erf.hpp"
#include "ngraph/op/exp.hpp"
#include "ngraph/op/experimental/batch_mat_mul.hpp"
#include "ngraph/op/experimental/dyn_broadcast.hpp"
#include "ngraph/op/experimental/dyn_pad.hpp"
#include "ngraph/op/experimental/dyn_replace_slice.hpp"
#include "ngraph/op/experimental/dyn_reshape.hpp"
#include "ngraph/op/experimental/dyn_slice.hpp"
#include "ngraph/op/experimental/generate_mask.hpp"
#include "ngraph/op/experimental/quantized_conv_bias.hpp"
#include "ngraph/op/experimental/quantized_conv_relu.hpp"
#include "ngraph/op/experimental/quantized_dot_bias.hpp"
#include "ngraph/op/experimental/range.hpp"
#include "ngraph/op/experimental/shape_of.hpp"
#include "ngraph/op/experimental/tile.hpp"
#include "ngraph/op/experimental/transpose.hpp"
#include "ngraph/op/floor.hpp"
#include "ngraph/op/gather.hpp"
#include "ngraph/op/gather_nd.hpp"
#include "ngraph/op/get_output_element.hpp"
#include "ngraph/op/greater.hpp"
#include "ngraph/op/greater_eq.hpp"
#include "ngraph/op/less.hpp"
#include "ngraph/op/less_eq.hpp"
#include "ngraph/op/log.hpp"
#include "ngraph/op/lrn.hpp"
#include "ngraph/op/max.hpp"
#include "ngraph/op/max_pool.hpp"
#include "ngraph/op/maximum.hpp"
#include "ngraph/op/min.hpp"
#include "ngraph/op/minimum.hpp"
#include "ngraph/op/multiply.hpp"
#include "ngraph/op/negative.hpp"
#include "ngraph/op/not.hpp"
#include "ngraph/op/not_equal.hpp"
#include "ngraph/op/one_hot.hpp"
#include "ngraph/op/op.hpp"
#include "ngraph/op/or.hpp"
#include "ngraph/op/pad.hpp"
#include "ngraph/op/parameter.hpp"
#include "ngraph/op/passthrough.hpp"
#include "ngraph/op/power.hpp"
#include "ngraph/op/product.hpp"
#include "ngraph/op/quantize.hpp"
#include "ngraph/op/quantized_convolution.hpp"
#include "ngraph/op/quantized_dot.hpp"
#include "ngraph/op/recv.hpp"
#include "ngraph/op/relu.hpp"
#include "ngraph/op/replace_slice.hpp"
#include "ngraph/op/reshape.hpp"
#include "ngraph/op/result.hpp"
#include "ngraph/op/reverse.hpp"
#include "ngraph/op/reverse_sequence.hpp"
#include "ngraph/op/scatter_add.hpp"
#include "ngraph/op/scatter_nd_add.hpp"
#include "ngraph/op/select.hpp"
#include "ngraph/op/send.hpp"
#include "ngraph/op/sigmoid.hpp"
#include "ngraph/op/sign.hpp"
#include "ngraph/op/sin.hpp"
#include "ngraph/op/sinh.hpp"
#include "ngraph/op/slice.hpp"
#include "ngraph/op/softmax.hpp"
#include "ngraph/op/sqrt.hpp"
#include "ngraph/op/stop_gradient.hpp"
#include "ngraph/op/subtract.hpp"
#include "ngraph/op/sum.hpp"
#include "ngraph/op/tan.hpp"
#include "ngraph/op/tanh.hpp"
#include "ngraph/op/topk.hpp"
#include "ngraph/op/xor.hpp"
#include "ngraph/runtime/gpu/gpu_cuda_kernel_ops.hpp"
#include "ngraph/runtime/gpu/gpu_cuda_kernel_ops.hpp"
#include "ngraph/runtime/gpu/gpu_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_emitter.hpp"
#include "ngraph/runtime/gpu/gpu_kernel_emitters.hpp"
#include "ngraph/runtime/gpu/gpu_kernel_emitters.hpp"
...
@@ -148,7 +51,8 @@ function<std::string(EMIT_ARGS)> runtime::gpu::GPU_Emitter::get_emit_function(co
...
@@ -148,7 +51,8 @@ function<std::string(EMIT_ARGS)> runtime::gpu::GPU_Emitter::get_emit_function(co
// {<Abs typeid>, function<std::string(EMIT_ARGS)},
// {<Abs typeid>, function<std::string(EMIT_ARGS)},
// {<Acos typeid>, function<std::string(EMIT_ARGS)},
// {<Acos typeid>, function<std::string(EMIT_ARGS)},
// ...
// ...
#define NGRAPH_OP(a, b) {type_index(typeid(b::a)), runtime::gpu::GPU_Emitter::emit_##a},
#define NGRAPH_OP(a, b, VERS) \
{type_index(typeid(b::a)), runtime::gpu::GPU_Emitter::emit_v##VERS##_##a},
static
const
map
<
type_index
,
function
<
std
::
string
(
EMIT_ARGS
)
>>
typeid_map
{
static
const
map
<
type_index
,
function
<
std
::
string
(
EMIT_ARGS
)
>>
typeid_map
{
#include "ngraph/runtime/gpu/op/op_tbl.hpp"
#include "ngraph/runtime/gpu/op/op_tbl.hpp"
};
};
...
@@ -162,49 +66,34 @@ function<std::string(EMIT_ARGS)> runtime::gpu::GPU_Emitter::get_emit_function(co
...
@@ -162,49 +66,34 @@ function<std::string(EMIT_ARGS)> runtime::gpu::GPU_Emitter::get_emit_function(co
return
it
->
second
;
return
it
->
second
;
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Abs
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Abs
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Abs
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Abs
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Acos
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Acos
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Acos
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Acos
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Add
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Add
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Add
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Add
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_All
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_And
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_AllReduce
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_And
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
And
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
And
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Any
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ArgMax
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgMax
(
EMIT_ARGS
)
{
{
cudnnReduceTensorOp_t
reduce_op
=
CUDNN_REDUCE_TENSOR_MAX
;
cudnnReduceTensorOp_t
reduce_op
=
CUDNN_REDUCE_TENSOR_MAX
;
return
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgReduce
(
return
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgReduce
(
compiled_function
,
function_name
,
node
,
args
,
out
,
reduce_op
);
compiled_function
,
function_name
,
node
,
args
,
out
,
reduce_op
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgMin
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ArgMin
(
EMIT_ARGS
)
{
{
cudnnReduceTensorOp_t
reduce_op
=
CUDNN_REDUCE_TENSOR_MIN
;
cudnnReduceTensorOp_t
reduce_op
=
CUDNN_REDUCE_TENSOR_MIN
;
return
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgReduce
(
return
runtime
::
gpu
::
GPU_Emitter
::
emit_ArgReduce
(
...
@@ -246,17 +135,17 @@ std::string runtime::gpu::GPU_Emitter::emit_ArgReduce(EMIT_ARGS, cudnnReduceTens
...
@@ -246,17 +135,17 @@ std::string runtime::gpu::GPU_Emitter::emit_ArgReduce(EMIT_ARGS, cudnnReduceTens
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Asin
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Asin
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Asin
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Asin
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Atan
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Atan
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Atan
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Atan
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_AvgPool
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
AvgPool
(
EMIT_ARGS
)
{
{
// assumes NC{d1,d2,...} format
// assumes NC{d1,d2,...} format
auto
avg_pool
=
static_cast
<
const
ngraph
::
op
::
AvgPool
*>
(
node
);
auto
avg_pool
=
static_cast
<
const
ngraph
::
op
::
AvgPool
*>
(
node
);
...
@@ -307,7 +196,7 @@ std::string runtime::gpu::GPU_Emitter::emit_AvgPool(EMIT_ARGS)
...
@@ -307,7 +196,7 @@ std::string runtime::gpu::GPU_Emitter::emit_AvgPool(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_AvgPoolBackprop
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
AvgPoolBackprop
(
EMIT_ARGS
)
{
{
auto
apb
=
static_cast
<
const
ngraph
::
op
::
AvgPoolBackprop
*>
(
node
);
auto
apb
=
static_cast
<
const
ngraph
::
op
::
AvgPoolBackprop
*>
(
node
);
auto
output_shape
=
out
[
0
].
get_shape
();
auto
output_shape
=
out
[
0
].
get_shape
();
...
@@ -339,11 +228,6 @@ std::string runtime::gpu::GPU_Emitter::emit_AvgPoolBackprop(EMIT_ARGS)
...
@@ -339,11 +228,6 @@ std::string runtime::gpu::GPU_Emitter::emit_AvgPoolBackprop(EMIT_ARGS)
}
}
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BatchMatMul
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
template
<
typename
T
>
template
<
typename
T
>
std
::
string
emit_BatchNorm
(
EMIT_ARGS
,
runtime
::
gpu
::
CUDNNEmitter
::
Prop
direction
,
bool
save_stats
)
std
::
string
emit_BatchNorm
(
EMIT_ARGS
,
runtime
::
gpu
::
CUDNNEmitter
::
Prop
direction
,
bool
save_stats
)
{
{
...
@@ -369,25 +253,25 @@ std::string emit_BatchNorm(EMIT_ARGS, runtime::gpu::CUDNNEmitter::Prop direction
...
@@ -369,25 +253,25 @@ std::string emit_BatchNorm(EMIT_ARGS, runtime::gpu::CUDNNEmitter::Prop direction
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BatchNormInference
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
BatchNormInference
(
EMIT_ARGS
)
{
{
return
::
emit_BatchNorm
<
ngraph
::
op
::
BatchNormInference
>
(
return
::
emit_BatchNorm
<
ngraph
::
op
::
BatchNormInference
>
(
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Inference
,
false
);
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Inference
,
false
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BatchNormTraining
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
BatchNormTraining
(
EMIT_ARGS
)
{
{
return
::
emit_BatchNorm
<
ngraph
::
op
::
BatchNormTraining
>
(
return
::
emit_BatchNorm
<
ngraph
::
op
::
BatchNormTraining
>
(
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Forward
,
false
);
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Forward
,
false
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BatchNormTrainingWithStats
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
BatchNormTrainingWithStats
(
EMIT_ARGS
)
{
{
return
::
emit_BatchNorm
<
ngraph
::
op
::
gpu
::
BatchNormTrainingWithStats
>
(
return
::
emit_BatchNorm
<
ngraph
::
op
::
gpu
::
BatchNormTrainingWithStats
>
(
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Forward
,
true
);
compiled_function
,
function_name
,
node
,
args
,
out
,
CUDNNEmitter
::
Prop
::
Forward
,
true
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BatchNormTrainingBackprop
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
BatchNormTrainingBackprop
(
EMIT_ARGS
)
{
{
const
ngraph
::
op
::
BatchNormTrainingBackprop
*
batchnorm
=
const
ngraph
::
op
::
BatchNormTrainingBackprop
*
batchnorm
=
static_cast
<
const
ngraph
::
op
::
BatchNormTrainingBackprop
*>
(
node
);
static_cast
<
const
ngraph
::
op
::
BatchNormTrainingBackprop
*>
(
node
);
...
@@ -417,7 +301,7 @@ std::string runtime::gpu::GPU_Emitter::emit_BatchNormTrainingBackprop(EMIT_ARGS)
...
@@ -417,7 +301,7 @@ std::string runtime::gpu::GPU_Emitter::emit_BatchNormTrainingBackprop(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Broadcast
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Broadcast
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -445,17 +329,12 @@ std::string runtime::gpu::GPU_Emitter::emit_Broadcast(EMIT_ARGS)
...
@@ -445,17 +329,12 @@ std::string runtime::gpu::GPU_Emitter::emit_Broadcast(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BroadcastLike
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Ceiling
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Ceiling
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Ceiling
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Ceiling
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Concat
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Concat
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -477,17 +356,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Concat(EMIT_ARGS)
...
@@ -477,17 +356,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Concat(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Constant
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Constant
(
EMIT_ARGS
)
{
{
return
""
;
return
""
;
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Convert
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Convert
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Convert
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Convert
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Convolution
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Convolution
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -511,7 +390,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Convolution(EMIT_ARGS)
...
@@ -511,7 +390,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Convolution(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ConvolutionBackpropData
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ConvolutionBackpropData
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -532,7 +411,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ConvolutionBackpropData(EMIT_ARGS)
...
@@ -532,7 +411,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ConvolutionBackpropData(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ConvolutionBackpropFilters
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ConvolutionBackpropFilters
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -553,32 +432,22 @@ std::string runtime::gpu::GPU_Emitter::emit_ConvolutionBackpropFilters(EMIT_ARGS
...
@@ -553,32 +432,22 @@ std::string runtime::gpu::GPU_Emitter::emit_ConvolutionBackpropFilters(EMIT_ARGS
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Cos
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Cos
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Cos
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Cos
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Cosh
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Cosh
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Cosh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Cosh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_BroadcastDistributed
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Divide
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Divide
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Divide
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Divide
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Dequantize
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Dot
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Dot
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -612,62 +481,22 @@ std::string runtime::gpu::GPU_Emitter::emit_Dot(EMIT_ARGS)
...
@@ -612,62 +481,22 @@ std::string runtime::gpu::GPU_Emitter::emit_Dot(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_DynReplaceSlice
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Equal
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_DynReshape
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_DynSlice
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_EmbeddingLookup
(
EMIT_ARGS
)
{
throw
ngraph_error
(
"EmbeddingLookup is not yet implemented for NVIDIA GPU"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Equal
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Equal
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Equal
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Erf
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Exp
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Exp
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Exp
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Exp
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Floor
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Floor
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Floor
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Floor
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Gather
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GetOutputElement
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_GatherND
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_GenerateMask
(
EMIT_ARGS
)
{
throw
ngraph_error
(
"GenerateMask is not supported yet on NVIDIA GPU"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_GetOutputElement
(
EMIT_ARGS
)
{
{
auto
get_tuple_element
=
static_cast
<
const
ngraph
::
op
::
GetOutputElement
*>
(
node
);
auto
get_tuple_element
=
static_cast
<
const
ngraph
::
op
::
GetOutputElement
*>
(
node
);
auto
&
host_emitter
=
compiled_function
->
get_primitive_emitter
()
->
get_host_emitter
();
auto
&
host_emitter
=
compiled_function
->
get_primitive_emitter
()
->
get_host_emitter
();
...
@@ -678,33 +507,33 @@ std::string runtime::gpu::GPU_Emitter::emit_GetOutputElement(EMIT_ARGS)
...
@@ -678,33 +507,33 @@ std::string runtime::gpu::GPU_Emitter::emit_GetOutputElement(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Greater
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Greater
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Greater
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Greater
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_GreaterEq
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
GreaterEq
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
GreaterEq
>
(
return
emit_elementwise
<
ngraph
::
op
::
GreaterEq
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Less
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Less
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Less
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Less
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_LessEq
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
LessEq
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
LessEq
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
LessEq
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Log
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Log
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Log
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Log
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_LRN
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
LRN
(
EMIT_ARGS
)
{
{
auto
lrn
=
static_cast
<
const
ngraph
::
op
::
LRN
*>
(
node
);
auto
lrn
=
static_cast
<
const
ngraph
::
op
::
LRN
*>
(
node
);
auto
&
input_shape
=
args
[
0
].
get_shape
();
auto
&
input_shape
=
args
[
0
].
get_shape
();
...
@@ -721,7 +550,7 @@ std::string runtime::gpu::GPU_Emitter::emit_LRN(EMIT_ARGS)
...
@@ -721,7 +550,7 @@ std::string runtime::gpu::GPU_Emitter::emit_LRN(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Max
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Max
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -738,12 +567,12 @@ std::string runtime::gpu::GPU_Emitter::emit_Max(EMIT_ARGS)
...
@@ -738,12 +567,12 @@ std::string runtime::gpu::GPU_Emitter::emit_Max(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Maximum
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Maximum
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Maximum
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Maximum
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_MaxPool
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
MaxPool
(
EMIT_ARGS
)
{
{
// assumes NC{d1,d2,...} format
// assumes NC{d1,d2,...} format
auto
max_pool
=
static_cast
<
const
ngraph
::
op
::
MaxPool
*>
(
node
);
auto
max_pool
=
static_cast
<
const
ngraph
::
op
::
MaxPool
*>
(
node
);
...
@@ -786,7 +615,7 @@ std::string runtime::gpu::GPU_Emitter::emit_MaxPool(EMIT_ARGS)
...
@@ -786,7 +615,7 @@ std::string runtime::gpu::GPU_Emitter::emit_MaxPool(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_MaxPoolBackprop
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
MaxPoolBackprop
(
EMIT_ARGS
)
{
{
auto
mpb
=
static_cast
<
const
ngraph
::
op
::
MaxPoolBackprop
*>
(
node
);
auto
mpb
=
static_cast
<
const
ngraph
::
op
::
MaxPoolBackprop
*>
(
node
);
auto
fp_input_shape
=
out
[
0
].
get_shape
();
auto
fp_input_shape
=
out
[
0
].
get_shape
();
...
@@ -816,7 +645,7 @@ std::string runtime::gpu::GPU_Emitter::emit_MaxPoolBackprop(EMIT_ARGS)
...
@@ -816,7 +645,7 @@ std::string runtime::gpu::GPU_Emitter::emit_MaxPoolBackprop(EMIT_ARGS)
}
}
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Min
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Min
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -834,35 +663,35 @@ std::string runtime::gpu::GPU_Emitter::emit_Min(EMIT_ARGS)
...
@@ -834,35 +663,35 @@ std::string runtime::gpu::GPU_Emitter::emit_Min(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Minimum
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Minimum
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Minimum
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Minimum
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Multiply
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Multiply
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Multiply
>
(
return
emit_elementwise
<
ngraph
::
op
::
Multiply
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Negative
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Negative
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Negative
>
(
return
emit_elementwise
<
ngraph
::
op
::
Negative
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Not
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Not
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Not
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Not
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_NotEqual
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
NotEqual
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
NotEqual
>
(
return
emit_elementwise
<
ngraph
::
op
::
NotEqual
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_OneHot
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
OneHot
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -884,12 +713,12 @@ std::string runtime::gpu::GPU_Emitter::emit_OneHot(EMIT_ARGS)
...
@@ -884,12 +713,12 @@ std::string runtime::gpu::GPU_Emitter::emit_OneHot(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Or
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Or
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Or
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Or
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Pad
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Pad
(
EMIT_ARGS
)
{
{
auto
pad
=
static_cast
<
const
ngraph
::
op
::
Pad
*>
(
node
);
auto
pad
=
static_cast
<
const
ngraph
::
op
::
Pad
*>
(
node
);
auto
input_shape
=
args
[
0
].
get_shape
();
auto
input_shape
=
args
[
0
].
get_shape
();
...
@@ -918,22 +747,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Pad(EMIT_ARGS)
...
@@ -918,22 +747,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Pad(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Parameter
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Parameter
(
EMIT_ARGS
)
{
{
return
""
;
return
""
;
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Passthrough
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Power
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Power
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Power
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Power
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Product
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Product
(
EMIT_ARGS
)
{
{
const
ngraph
::
op
::
Product
*
prod
=
static_cast
<
const
ngraph
::
op
::
Product
*>
(
node
);
const
ngraph
::
op
::
Product
*
prod
=
static_cast
<
const
ngraph
::
op
::
Product
*>
(
node
);
...
@@ -952,68 +776,18 @@ std::string runtime::gpu::GPU_Emitter::emit_Product(EMIT_ARGS)
...
@@ -952,68 +776,18 @@ std::string runtime::gpu::GPU_Emitter::emit_Product(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Quantize
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Relu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedConvolutionBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedConvolutionBiasAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedConvolutionBiasSignedAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedConvolutionRelu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedDot
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_QuantizedDotBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Recv
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Range
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Relu
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Relu
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Relu
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ReluBackprop
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ReluBackprop
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
ReluBackprop
>
(
return
emit_elementwise
<
ngraph
::
op
::
ReluBackprop
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ReplaceSlice
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ReplaceSlice
(
EMIT_ARGS
)
{
{
// assumes NC{d1,d2,...} format
// assumes NC{d1,d2,...} format
auto
rep_slice
=
static_cast
<
const
ngraph
::
op
::
ReplaceSlice
*>
(
node
);
auto
rep_slice
=
static_cast
<
const
ngraph
::
op
::
ReplaceSlice
*>
(
node
);
...
@@ -1024,7 +798,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ReplaceSlice(EMIT_ARGS)
...
@@ -1024,7 +798,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ReplaceSlice(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Reshape
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Reshape
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -1150,7 +924,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Reshape(EMIT_ARGS)
...
@@ -1150,7 +924,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Reshape(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Result
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Result
(
EMIT_ARGS
)
{
{
if
(
args
[
0
].
get_name
()
==
out
[
0
].
get_name
())
if
(
args
[
0
].
get_name
()
==
out
[
0
].
get_name
())
{
{
...
@@ -1163,7 +937,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Result(EMIT_ARGS)
...
@@ -1163,7 +937,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Result(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Reverse
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Reverse
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -1196,7 +970,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Reverse(EMIT_ARGS)
...
@@ -1196,7 +970,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Reverse(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ReverseSequence
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
ReverseSequence
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -1223,7 +997,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ReverseSequence(EMIT_ARGS)
...
@@ -1223,7 +997,7 @@ std::string runtime::gpu::GPU_Emitter::emit_ReverseSequence(EMIT_ARGS)
}
}
#if CUDNN_VERSION >= 7200
#if CUDNN_VERSION >= 7200
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Rnn
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Rnn
(
EMIT_ARGS
)
{
{
auto
rnn
=
static_cast
<
const
ngraph
::
op
::
gpu
::
Rnn
*>
(
node
);
auto
rnn
=
static_cast
<
const
ngraph
::
op
::
gpu
::
Rnn
*>
(
node
);
auto
&
cudnn_emitter
=
compiled_function
->
get_primitive_emitter
()
->
get_cudnn_emitter
();
auto
&
cudnn_emitter
=
compiled_function
->
get_primitive_emitter
()
->
get_cudnn_emitter
();
...
@@ -1232,63 +1006,38 @@ std::string runtime::gpu::GPU_Emitter::emit_Rnn(EMIT_ARGS)
...
@@ -1232,63 +1006,38 @@ std::string runtime::gpu::GPU_Emitter::emit_Rnn(EMIT_ARGS)
}
}
#endif
#endif
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ScalarConstantLike
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Select
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ScatterAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ScatterNDAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Select
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Select
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Select
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Send
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Sigmoid
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_ShapeOf
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sigmoid
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Sigmoid
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Sigmoid
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_SigmoidBackprop
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
SigmoidBackprop
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
SigmoidBackprop
>
(
return
emit_elementwise
<
ngraph
::
op
::
SigmoidBackprop
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sign
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Sign
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Sign
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Sign
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sin
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Sin
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Sin
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Sin
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sinh
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Sinh
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Sinh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Sinh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Slice
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Slice
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -1320,7 +1069,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Slice(EMIT_ARGS)
...
@@ -1320,7 +1069,7 @@ std::string runtime::gpu::GPU_Emitter::emit_Slice(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Softmax
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Softmax
(
EMIT_ARGS
)
{
{
auto
softmax
=
static_cast
<
const
ngraph
::
op
::
Softmax
*>
(
node
);
auto
softmax
=
static_cast
<
const
ngraph
::
op
::
Softmax
*>
(
node
);
...
@@ -1334,23 +1083,18 @@ std::string runtime::gpu::GPU_Emitter::emit_Softmax(EMIT_ARGS)
...
@@ -1334,23 +1083,18 @@ std::string runtime::gpu::GPU_Emitter::emit_Softmax(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sqrt
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Sqrt
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Sqrt
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Sqrt
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_StopGradient
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Subtract
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Subtract
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Subtract
>
(
return
emit_elementwise
<
ngraph
::
op
::
Subtract
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Sum
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Sum
(
EMIT_ARGS
)
{
{
return
runtime
::
gpu
::
GPU_Emitter
::
emit_Sum_0
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
runtime
::
gpu
::
GPU_Emitter
::
emit_Sum_0
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
...
@@ -1417,17 +1161,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Sum_1(EMIT_ARGS)
...
@@ -1417,17 +1161,17 @@ std::string runtime::gpu::GPU_Emitter::emit_Sum_1(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Tan
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Tan
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Tan
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Tan
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Tanh
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
Tanh
(
EMIT_ARGS
)
{
{
return
emit_elementwise
<
ngraph
::
op
::
Tanh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
return
emit_elementwise
<
ngraph
::
op
::
Tanh
>
(
compiled_function
,
function_name
,
node
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_TopK
(
EMIT_ARGS
)
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_
v0_
TopK
(
EMIT_ARGS
)
{
{
if
(
out
[
0
].
get_size
()
==
0
)
if
(
out
[
0
].
get_size
()
==
0
)
{
{
...
@@ -1452,31 +1196,6 @@ std::string runtime::gpu::GPU_Emitter::emit_TopK(EMIT_ARGS)
...
@@ -1452,31 +1196,6 @@ std::string runtime::gpu::GPU_Emitter::emit_TopK(EMIT_ARGS)
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
return
compiled_function
->
add_to_runtime
(
index
,
function_name
,
args
,
out
);
}
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Xor
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_DynBroadcast
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_DynPad
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Tile
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_Transpose
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
string
runtime
::
gpu
::
GPU_Emitter
::
node_names
(
const
vector
<
GPUTensorWrapper
>&
args
,
string
runtime
::
gpu
::
GPU_Emitter
::
node_names
(
const
vector
<
GPUTensorWrapper
>&
args
,
initializer_list
<
int
>
arg_indexes
)
initializer_list
<
int
>
arg_indexes
)
{
{
...
@@ -1520,3 +1239,754 @@ Shape runtime::gpu::get_padded_shape(const Shape& input_shape,
...
@@ -1520,3 +1239,754 @@ Shape runtime::gpu::get_padded_shape(const Shape& input_shape,
}
}
return
padded_shape
;
return
padded_shape
;
}
}
/// List of all unsupported ops on the NVIDIA GPU backend.
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_All
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_AllReduce
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Any
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_BatchMatMul
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_BroadcastLike
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_BroadcastDistributed
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ConvertLike
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Dequantize
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DynReplaceSlice
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DynReshape
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DynSlice
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_EmbeddingLookup
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Erf
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Gather
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GatherND
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GenerateMask
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Passthrough
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Quantize
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedConvolutionBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedConvolutionBiasAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedConvolutionBiasSignedAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedConvolutionRelu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedDot
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_QuantizedDotBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Recv
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Range
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ScalarConstantLike
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ScatterAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ScatterNDAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Send
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ShapeOf
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_StopGradient
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Xor
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DynBroadcast
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DynPad
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Tile
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Split
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Gelu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Power
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Multiply
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Reverse
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CropAndResize
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PriorBoxClustered
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceProd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_BinaryConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_NotEqual
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Greater
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_RegionYolo
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GRN
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Divide
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GroupConvolutionBackpropData
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_GreaterEqual
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Clamp
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_RandomUniform
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_LessEqual
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_GroupConvolutionBackpropData
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PriorBox
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Equal
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Gather
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_AvgPoolBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Round
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ShuffleChannels
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Transpose
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Elu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GeluBackpropFactor
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_SquaredDifference
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ConvolutionBiasBackpropFiltersBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GRUCell
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_FakeQuantize
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Less
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ConvolutionBackpropData
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_DeformablePSROIPooling
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Unsqueeze
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_NormalizeL2
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_DeformableConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PSROIPooling
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Add
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_FloorMod
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CumSum
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Split
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ConvolutionBiasAdd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_DetectionOutput
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_NonMaxSuppression
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceSum
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Maximum
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Minimum
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Squeeze
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CrossEntropyBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CrossEntropy
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Proposal
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Selu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ConvolutionBias
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_SpaceToDepth
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Select
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceMax
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_MaxPoolBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Stack
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_GatherTree
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_AvgPool
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CompiledKernel
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_RNNCell
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_BatchMatMulTranspose
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_CTCGreedyDecoder
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_DepthToSpace
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_HardSigmoid
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_TensorIterator
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ReorgYolo
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Atan2
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GroupConvolutionTranspose
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Broadcast
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceLogicalOr
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_LogicalNot
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_LogicalXor
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_LSTMSequence
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ROIPooling
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceLogicalAnd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Interpolate
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_LayerNorm
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_GenerateMask
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PartialSliceBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ConvolutionBackpropFilters
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Subtract
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Reshape
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PRelu
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_LSTMCell
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ScaleShift
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GroupConvolutionBackpropFilters
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceMin
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_MatMul
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_MaxPool
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_Gemm
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_SoftmaxCrossEntropyBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Pad
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_ReduceMean
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Softmax
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Convolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_PartialSlice
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_StridedSlice
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_MVN
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_LogicalOr
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_Mod
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_VariadicSplit
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_ScatterND
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_GroupConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_SoftmaxCrossEntropy
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_LogicalAnd
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_TopK
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v1_GroupConvolution
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
std
::
string
runtime
::
gpu
::
GPU_Emitter
::
emit_v0_LayerNormBackprop
(
EMIT_ARGS
)
{
throw
unsupported_op
(
"Unsupported op '"
+
node
->
description
()
+
"'"
);
}
src/ngraph/runtime/gpu/gpu_emitter.hpp
View file @
3d9004c0
...
@@ -37,7 +37,7 @@ namespace ngraph
...
@@ -37,7 +37,7 @@ namespace ngraph
// This defines a collection of function declarations like this
// This defines a collection of function declarations like this
// static std::string emit_Abs(EMIT_ARGS);
// static std::string emit_Abs(EMIT_ARGS);
// static std::string emit_Acos(EMIT_ARGS);
// static std::string emit_Acos(EMIT_ARGS);
#define NGRAPH_OP(a, b
) static std::string emit
_##a(EMIT_ARGS);
#define NGRAPH_OP(a, b
, VERS) static std::string emit_v##VERS##
_##a(EMIT_ARGS);
#include "ngraph/runtime/gpu/op/op_tbl.hpp"
#include "ngraph/runtime/gpu/op/op_tbl.hpp"
#undef NGRAPH_OP
#undef NGRAPH_OP
...
...
src/ngraph/runtime/gpu/gpu_runtime_constructor.hpp
View file @
3d9004c0
...
@@ -39,8 +39,8 @@ namespace ngraph
...
@@ -39,8 +39,8 @@ namespace ngraph
public
:
public
:
using
op_runtime_t
=
using
op_runtime_t
=
std
::
function
<
void
(
GPUCallFrame
&
call_frame
,
GPURuntimeContext
*
ctx
)
>
;
std
::
function
<
void
(
GPUCallFrame
&
call_frame
,
GPURuntimeContext
*
ctx
)
>
;
using
op_order_t
=
using
op_order_t
=
std
::
unordered_map
<
std
::
shared_ptr
<
Function
>
,
std
::
unordered_map
<
std
::
shared_ptr
<
Function
>
,
std
::
list
<
std
::
shared_ptr
<
Node
>>>
;
std
::
vector
<
std
::
shared_ptr
<
Node
>>>
;
GPURuntimeConstructor
(
const
op_order_t
&
ordered_ops
);
GPURuntimeConstructor
(
const
op_order_t
&
ordered_ops
);
void
add
(
const
std
::
string
&
name
,
const
op_runtime_t
&
step
);
void
add
(
const
std
::
string
&
name
,
const
op_runtime_t
&
step
);
...
...
src/ngraph/runtime/gpu/op/batch_norm.cpp
View file @
3d9004c0
...
@@ -15,8 +15,11 @@
...
@@ -15,8 +15,11 @@
//*****************************************************************************
//*****************************************************************************
#include "ngraph/runtime/gpu/op/batch_norm.hpp"
#include "ngraph/runtime/gpu/op/batch_norm.hpp"
#include "ngraph/node.hpp"
#include "ngraph/validation_util.hpp"
#include "ngraph/validation_util.hpp"
constexpr
ngraph
::
NodeTypeInfo
ngraph
::
op
::
gpu
::
BatchNormTrainingWithStats
::
type_info
;
ngraph
::
op
::
gpu
::
BatchNormTrainingWithStats
::
BatchNormTrainingWithStats
(
ngraph
::
op
::
gpu
::
BatchNormTrainingWithStats
::
BatchNormTrainingWithStats
(
double
eps
,
double
eps
,
std
::
shared_ptr
<
ngraph
::
Node
>
gamma
,
std
::
shared_ptr
<
ngraph
::
Node
>
gamma
,
...
...
src/ngraph/runtime/gpu/op/batch_norm.hpp
View file @
3d9004c0
...
@@ -40,6 +40,8 @@ namespace ngraph
...
@@ -40,6 +40,8 @@ namespace ngraph
void
validate_and_infer_types
()
override
;
void
validate_and_infer_types
()
override
;
static
constexpr
NodeTypeInfo
type_info
{
"BatchNormTrainingWithStats"
,
0
};
const
NodeTypeInfo
&
get_type_info
()
const
override
{
return
type_info
;
}
protected
:
protected
:
virtual
std
::
shared_ptr
<
Node
>
virtual
std
::
shared_ptr
<
Node
>
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
override
;
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
override
;
...
...
src/ngraph/runtime/gpu/op/op_tbl.hpp
View file @
3d9004c0
...
@@ -14,8 +14,8 @@
...
@@ -14,8 +14,8 @@
// limitations under the License.
// limitations under the License.
//*****************************************************************************
//*****************************************************************************
#include "ngraph/op/op_tbl.hpp"
#include "ngraph/op/op_
version_
tbl.hpp"
#if CUDNN_VERSION >= 7200
#if CUDNN_VERSION >= 7200
NGRAPH_OP
(
Rnn
,
ngraph
::
op
::
gpu
)
NGRAPH_OP
(
Rnn
,
ngraph
::
op
::
gpu
,
0
)
#endif
#endif
NGRAPH_OP
(
BatchNormTrainingWithStats
,
ngraph
::
op
::
gpu
)
NGRAPH_OP
(
BatchNormTrainingWithStats
,
ngraph
::
op
::
gpu
,
0
)
src/ngraph/runtime/gpu/op/rnn.cpp
View file @
3d9004c0
...
@@ -16,11 +16,14 @@
...
@@ -16,11 +16,14 @@
#include "ngraph/runtime/gpu/op/rnn.hpp"
#include "ngraph/runtime/gpu/op/rnn.hpp"
#include "ngraph/log.hpp"
#include "ngraph/log.hpp"
#include "ngraph/node.hpp"
#include "ngraph/util.hpp"
#include "ngraph/util.hpp"
using
namespace
std
;
using
namespace
std
;
using
namespace
ngraph
;
using
namespace
ngraph
;
constexpr
NodeTypeInfo
op
::
gpu
::
Rnn
::
type_info
;
shared_ptr
<
Node
>
op
::
gpu
::
Rnn
::
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
shared_ptr
<
Node
>
op
::
gpu
::
Rnn
::
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
{
{
NGRAPH_CHECK
(
new_args
.
size
()
==
4
,
"Incorrect number of new arguments"
);
NGRAPH_CHECK
(
new_args
.
size
()
==
4
,
"Incorrect number of new arguments"
);
...
...
src/ngraph/runtime/gpu/op/rnn.hpp
View file @
3d9004c0
...
@@ -65,6 +65,8 @@ namespace ngraph
...
@@ -65,6 +65,8 @@ namespace ngraph
const
int
src_iter_feature_size
,
const
int
src_iter_feature_size
,
const
int
direction
,
const
int
direction
,
const
int
num_fused_layers
);
const
int
num_fused_layers
);
static
constexpr
NodeTypeInfo
type_info
{
"Rnn"
,
0
};
const
NodeTypeInfo
&
get_type_info
()
const
override
{
return
type_info
;
}
virtual
std
::
shared_ptr
<
Node
>
virtual
std
::
shared_ptr
<
Node
>
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
override
;
copy_with_new_args
(
const
NodeVector
&
new_args
)
const
override
;
int
get_num_timesteps
()
const
{
return
m_num_timesteps
;
}
int
get_num_timesteps
()
const
{
return
m_num_timesteps
;
}
...
...
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