• Chris Sullivan's avatar
    Abstraction for GPU unary elementwise ops (#587) · 529362b5
    Chris Sullivan authored
    * straightforward gpu.cos implementation following previous patterns prior to refactor
    
    * Generalized unary elementwise gpu op impl.. New unary elementwise ops can
    be added to the type annotations in gpu_cuda_kernel_ops.hpp. Next step
    is to refactor the llvm interface in gpu_emitters.hpp for similar generality.
    
    * Added gpu_emitter.hpp:EmitUnaryElementwise.
    
    Function adds cuda kernel based on ngraph::op::op_type::description.
    This can service all unary elementwise ops run on the gpu.
    
    * The following elementwise unary ops now use the EmitUnaryElementwise emitter:
    * GPU.abs
    * GPU.acos
    * GPU.asin
    * GPU.atan
    * GPU.ceiling
    * GPU.cos
    * GPU.cosh
    * GPU.exp
    * GPU.floor
    * GPU.log
    * GPU.not
    * GPU.sign
    * GPU.sin
    * GPU.sinh
    * GPU.tan
    * GPU.tanh
    Unary elementwise ops Sign and Not need extra consideration.
    
    * tanh test changed to test::all_close for fp comparison (also done for tan in commit 65fa7c6de34c8277fe2a4801644f6bb64574f4ff).
    
    * GPU backend skips added for recent softmax test and updated aliased output test that uses op::Constant.
    
    * code format update
    
    * changed cuda builder interface names to unary/binary/arbitrary, added impl. note to gpu_cuda_kernel_ops, cleaned code format
    
    * updated ngraph-cpp reference
    
    * Fixing incorrect github conflict resolution.
    
    * Added GPU emitter for op::Result.
    For now it simply copies the output tensor.
    
    All but 3 tests now pass. The remaining
    failing tests are:
    * GPU.dot_0_0
    * GPU.dot_matrix_2x0_0x2
    * GPU.dot_2x0_0
    
    * Removed call to handle memory aliasing in gpu_external_function.
    
    * fix gpu emitter bug that will return in the middle of function
    
    * Merge pull request #609 from NervanaSystems/tfl/fix_return_bug
    
    fix gpu emitter bug that will return in the middle of function
    
    * GPU backend skips added for recent softmax test and updated aliased output test that uses op::Constant.
    529362b5
Name
Last commit
Last update
..
autodiff Loading commit data...
builder Loading commit data...
codegen Loading commit data...
descriptor Loading commit data...
ops Loading commit data...
pass Loading commit data...
pattern Loading commit data...
runtime Loading commit data...
types Loading commit data...
CMakeLists.txt Loading commit data...
axis_set.hpp Loading commit data...
axis_vector.hpp Loading commit data...
coordinate.hpp Loading commit data...
coordinate_diff.hpp Loading commit data...
coordinate_transform.cpp Loading commit data...
coordinate_transform.hpp Loading commit data...
except.hpp Loading commit data...
file_util.cpp Loading commit data...
file_util.hpp Loading commit data...
function.cpp Loading commit data...
function.hpp Loading commit data...
graph_util.cpp Loading commit data...
graph_util.hpp Loading commit data...
log.cpp Loading commit data...
log.hpp Loading commit data...
ngraph.hpp Loading commit data...
node.cpp Loading commit data...
node.hpp Loading commit data...
node_vector.hpp Loading commit data...
placement.cpp Loading commit data...
placement.hpp Loading commit data...
serializer.cpp Loading commit data...
serializer.hpp Loading commit data...
shape.cpp Loading commit data...
shape.hpp Loading commit data...
strides.hpp Loading commit data...
util.cpp Loading commit data...
util.hpp Loading commit data...
uuid.hpp Loading commit data...