27 static const std::size_t ARRAY_SIZE = 10000;
28 std::vector< float > dummyArray;
29 dummyArray.reserve( ARRAY_SIZE );
30 static const float ARRAY_ELEMENT = 3.141592f;
31 for( std::size_t i = 0; i < ARRAY_SIZE; ++i ) {
32 dummyArray.push_back( ARRAY_ELEMENT );
37 static const float MULTIPLIER = 1.23f;
42 if( status.wait() != 0 ) {
43 ATH_MSG_ERROR(
"Something went wrong in the execution of the CUDA "
45 return StatusCode::FAILURE;
49 static const float EXPECTED_RESULT = ARRAY_ELEMENT * MULTIPLIER;
50 for( std::size_t i = 0; i < ARRAY_SIZE; ++i ) {
51 if( std::abs( dummyArray[ i ] - EXPECTED_RESULT ) > 0.001 ) {
53 return StatusCode::FAILURE;
58 return StatusCode::SUCCESS;
std::unique_ptr< AthCUDA::IKernelTask > make_CudaMultiplyTask(AthCUDA::KernelStatus &status, std::vector< float > &array, float multiplier)
Function setting up the task performing a simple linear transformation.