8#include <gtest/gtest.h>
10#include "arcane/utils/NumArray.h"
11#include "arcane/utils/Exception.h"
12#include "arcane/accelerator/core/Runner.h"
13#include "arcane/accelerator/core/RunQueue.h"
14#include "arcane/accelerator/RunCommandLoop.h"
16#include "TestVirtualMethod.h"
21extern "C++" void arcaneRegisterDefaultAcceleratorRuntime();
31 arcaneRegisterDefaultAcceleratorRuntime();
35 return arcaneGetDefaultExecutionPolicy();
47 ARCCORE_HOST_DEVICE
int apply(
int a,
int b)
override
55 std::cout <<
"Test Virtual Method 1. Execution policy=" << exec_policy <<
"\n";
56 Runner runner(exec_policy);
60 if (queue.isAcceleratorPolicy())
71 std::cout <<
"Test Virtual Method 1. Create derived class\n";
83 const Int32 nb_item = 12;
85 compute_array.resize(nb_item);
86 std::cout <<
"Test Virtual Method 1. Do computation\n";
88 _doCallTestVirtualMethod1(queue, compute_array, base_instance);
91 host_array.
copy(compute_array);
93 for (Int32 i = 0; i < nb_item; ++i)
94 std::cout <<
"I=" << i <<
" R=" << host_array[i] <<
"\n";
95 for (Int32 i = 0; i < nb_item; ++i)
96 ASSERT_EQ(i * 2, host_array[i]);
99TEST(ArcaneAccelerator, VirtualMethod)
104 _doTestVirtualMethod1(_defaultExecutionPolicy());
#define RUNCOMMAND_SINGLE(...)
Loop on accelerator for execution with a single thread.
Management of an accelerator command.
Execution queue for an accelerator.
Execution manager for accelerator.
Multi-dimensional arrays for numerical types accessible on accelerators.
void copy(SmallSpan< const DataType > rhs)
Copies the values from rhs into the instance.
Namespace for accelerator usage.
RunCommand makeCommand(const RunQueue &run_queue)
Creates a command associated with the queue run_queue.
RunQueue makeQueue(const Runner &runner)
Creates a queue associated with runner.
eExecutionPolicy
Execution policy for a Runner.
@ Sequential
Sequential execution policy.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
void arcaneCallFunctionAndTerminateIfThrow(std::function< void()> function)
Calls the function function and calls std::terminate() if an exception occurs.
eMemoryResource
List of available memory resources.
@ Host
Allocates on the host.
@ Device
Allocates on the device.