Пример #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 ) {
      output(i0) = input(i0);
    }

    this_thread.barrier();
  }
Пример #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 ) {
      output(i0,i1,i2) = input(i0,i1,i2);
    }}}

    this_thread.barrier();
  }
Пример #3
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 );
   }
Пример #4
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 ) {
    for ( Host::size_type i5 = 0 ; i5 < output.dimension_5() ; ++i5 ) {
    for ( Host::size_type i6 = 0 ; i6 < output.dimension_6() ; ++i6 ) {
      output(i0,i1,i2,i3,i4,i5,i6) = input(i0,i1,i2,i3,i4,i5,i6);
    }}}}}}}

    this_thread.barrier();
  }
Пример #5
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();
   }