Esempio n. 1
0
  void execute_on_thread( HostThread & this_thread ) const
  {
    std::pair<Host::size_type,Host::size_type> range =
      this_thread.work_range( output.dimension_0() );

    for ( Host::size_type i0 = range.first ; i0 < range.second ; ++i0 ) {
    for ( Host::size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) {
      output(i0,i1) = input(i0,i1);
    }}

    this_thread.barrier();
  }
Esempio n. 2
0
  void execute_on_thread( HostThread & this_thread ) const
  {
    std::pair<Host::size_type,Host::size_type> range =
      this_thread.work_range( output.dimension_0() );

    for ( Host::size_type i0 = range.first ; i0 < range.second ; ++i0 ) {
    for ( Host::size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) {
    for ( Host::size_type i2 = 0 ; i2 < output.dimension_2() ; ++i2 ) {
    for ( Host::size_type i3 = 0 ; i3 < output.dimension_3() ; ++i3 ) {
    for ( Host::size_type i4 = 0 ; i4 < output.dimension_4() ; ++i4 ) {
      output(i0,i1,i2,i3,i4) = input(i0,i1,i2,i3,i4);
    }}}}}

    this_thread.barrier();
  }
Esempio n. 3
0
 KOKKOS_INLINE_FUNCTION
 void operator()( const size_type i0 ) const
 {
   for ( size_type i1 = 0 ; i1 < output.dimension_1() ; ++i1 ) {
   for ( size_type i2 = 0 ; i2 < output.dimension_2() ; ++i2 ) {
   for ( size_type i3 = 0 ; i3 < output.dimension_3() ; ++i3 ) {
   for ( size_type i4 = 0 ; i4 < output.dimension_4() ; ++i4 ) {
   for ( size_type i5 = 0 ; i5 < output.dimension_5() ; ++i5 ) {
   for ( size_type i6 = 0 ; i6 < output.dimension_6() ; ++i6 ) {
   for ( size_type i7 = 0 ; i7 < output.dimension_7() ; ++i7 ) {
     output.at(i0,i1,i2,i3,i4,i5,i6,i7) = input ;
   }}}}}}}
 }
Esempio n. 4
0
 ViewRemap( const OutputView & arg_out , const InputView & arg_in )
   : output( arg_out ), input( arg_in )
   , n0( std::min( (size_t)arg_out.dimension_0() , (size_t)arg_in.dimension_0() ) )
   , n1( std::min( (size_t)arg_out.dimension_1() , (size_t)arg_in.dimension_1() ) )
   , n2( std::min( (size_t)arg_out.dimension_2() , (size_t)arg_in.dimension_2() ) )
   , n3( std::min( (size_t)arg_out.dimension_3() , (size_t)arg_in.dimension_3() ) )
   , n4( std::min( (size_t)arg_out.dimension_4() , (size_t)arg_in.dimension_4() ) )
   , n5( std::min( (size_t)arg_out.dimension_5() , (size_t)arg_in.dimension_5() ) )
   , n6( std::min( (size_t)arg_out.dimension_6() , (size_t)arg_in.dimension_6() ) )
   , n7( std::min( (size_t)arg_out.dimension_7() , (size_t)arg_in.dimension_7() ) )
   {
     parallel_for( n0 , *this );
   }
Esempio n. 5
0
 KOKKOS_INLINE_FUNCTION
 void operator()( const size_type i0 ) const
 {
   for ( size_type i1 = 0 ; i1 < n1 ; ++i1 ) {
   for ( size_type i2 = 0 ; i2 < n2 ; ++i2 ) {
   for ( size_type i3 = 0 ; i3 < n3 ; ++i3 ) {
   for ( size_type i4 = 0 ; i4 < n4 ; ++i4 ) {
   for ( size_type i5 = 0 ; i5 < n5 ; ++i5 ) {
   for ( size_type i6 = 0 ; i6 < n6 ; ++i6 ) {
   for ( size_type i7 = 0 ; i7 < n7 ; ++i7 ) {
     output.at(i0,i1,i2,i3,i4,i5,i6,i7) = input.at(i0,i1,i2,i3,i4,i5,i6,i7);
   }}}}}}}
 }
Esempio n. 6
0
 ViewFill( const OutputView & arg_out , const_value_type & arg_in )
 {
   DeepCopy< dst_space , dst_space >( arg_out.ptr_on_device() , & arg_in ,
                                      sizeof(const_value_type) );
 }
Esempio n. 7
0
 ViewFill( const OutputView & arg_out , const_value_type & arg_in )
   : output( arg_out ), input( arg_in )
   {
     parallel_for( output.dimension_0() , *this );
     device_type::fence();
   }
Esempio n. 8
0
 ViewRemap( const OutputView & arg_out , const InputView & arg_in )
 {
   DeepCopy< dst_space , src_space >( arg_out.ptr_on_device() ,
                                      arg_in.ptr_on_device() ,
                                      sizeof(value_type) );
 }