Skip to content

Commit

Permalink
replace Dim type of Accessor by a size_t
Browse files Browse the repository at this point in the history
  • Loading branch information
bernhardmgruber committed Feb 23, 2021
1 parent a9b59eb commit 7c50157
Show file tree
Hide file tree
Showing 43 changed files with 185 additions and 170 deletions.
17 changes: 3 additions & 14 deletions example/bufferCopy/src/bufferCopy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,12 @@
#include <cstdint>
#include <iostream>

////-----------------------------------------------------------------------------
// template<size_t width>
// ALPAKA_FN_ACC size_t linIdxToPitchedIdx(size_t const globalIdx, size_t const pitch)
//{
// const size_t idx_x = globalIdx % width;
// const size_t idx_y = globalIdx / width;
// return idx_x + idx_y * pitch;
//}

//#############################################################################
//! Prints all elements of the buffer.
struct PrintBufferKernel
{
//-----------------------------------------------------------------------------
template<typename TAcc, typename Data, typename Idx, typename Dim>
template<typename TAcc, typename Data, typename Idx, std::size_t Dim>
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<const Data*, const Data, Idx, Dim> data) const
-> void
{
Expand All @@ -55,8 +46,7 @@ struct TestBufferKernel
{
//-----------------------------------------------------------------------------
template<typename TAcc, typename TData, typename Idx>
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<TData*, TData, Idx, alpaka::DimInt<3>> const data)
const -> void
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<TData*, TData, Idx, 3> const data) const -> void
{
auto const idx = alpaka::getIdx<alpaka::Grid, alpaka::Threads>(acc);
auto const gridSize = alpaka::getWorkDiv<alpaka::Grid, alpaka::Threads>(acc);
Expand All @@ -74,8 +64,7 @@ struct TestBufferKernel
struct FillBufferKernel
{
template<typename TAcc, typename TData, typename Idx>
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<TData*, TData, Idx, alpaka::DimInt<3>> const data)
const -> void
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<TData*, TData, Idx, 3> const data) const -> void
{
auto const idx = alpaka::getIdx<alpaka::Grid, alpaka::Threads>(acc);
auto const gridSize = alpaka::getWorkDiv<alpaka::Grid, alpaka::Threads>(acc);
Expand Down
4 changes: 2 additions & 2 deletions example/heatEquation/src/heatEquation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ struct HeatEquationKernel
template<typename TAcc, typename Idx>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<const double*, const double, Idx, alpaka::DimInt<1>> const uCurrBuf,
alpaka::Accessor<double*, double, Idx, alpaka::DimInt<1>> const uNextBuf,
alpaka::Accessor<const double*, const double, Idx, 1> const uCurrBuf,
alpaka::Accessor<double*, double, Idx, 1> const uNextBuf,
double const dx,
double const dt) const -> void
{
Expand Down
9 changes: 6 additions & 3 deletions example/monteCarloIntegration/src/monteCarloIntegration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,12 @@ struct Kernel
//! \param numPoints The total number of points to be calculated.
//! \param globalCounter The sum of all local results.
//! \param functor The function for which the integral is to be computed.
template<typename TAcc, typename TAccessor, typename TFunctor>
ALPAKA_FN_ACC auto operator()(TAcc const& acc, size_t const numPoints, TAccessor globalCounter, TFunctor functor)
const -> void
template<typename TAcc, typename Idx, typename TFunctor>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
size_t const numPoints,
alpaka::Accessor<uint32_t*, uint32_t, Idx, 1> globalCounter,
TFunctor functor) const -> void
{
// Get the global linearized thread idx.
auto const globalThreadIdx = alpaka::getIdx<alpaka::Grid, alpaka::Threads>(acc);
Expand Down
8 changes: 4 additions & 4 deletions example/reduce/src/iterator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ template<typename T, typename Idx, typename TBuf = T>
class Iterator
{
protected:
const alpaka::Accessor<const TBuf*, const TBuf, Idx, alpaka::DimInt<1>> mData;
const alpaka::Accessor<const TBuf*, const TBuf, Idx, 1> mData;
uint64_t mIndex;
const uint64_t mMaximum;

Expand All @@ -40,7 +40,7 @@ class Iterator
//! \param index The index.
//! \param maximum The first index outside of the iterator memory.
ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE
Iterator(alpaka::Accessor<const TBuf*, const TBuf, Idx, alpaka::DimInt<1>> data, uint32_t index, uint64_t maximum)
Iterator(alpaka::Accessor<const TBuf*, const TBuf, Idx, 1> data, uint32_t index, uint64_t maximum)
: mData(data)
, mIndex(index)
, mMaximum(maximum)
Expand Down Expand Up @@ -151,7 +151,7 @@ class IteratorCpu : public Iterator<T, Idx, TBuf>
//! \param n The problem size.
ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE IteratorCpu(
const TAcc& acc,
alpaka::Accessor<const TBuf*, const TBuf, Idx, alpaka::DimInt<1>> data,
alpaka::Accessor<const TBuf*, const TBuf, Idx, 1> data,
uint32_t linearizedIndex,
uint32_t gridSize,
uint64_t n)
Expand Down Expand Up @@ -287,7 +287,7 @@ class IteratorGpu : public Iterator<T, Idx, TBuf>
//! \param n The problem size.
ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE IteratorGpu(
const TAcc&,
alpaka::Accessor<const TBuf*, const TBuf, Idx, alpaka::DimInt<1>> data,
alpaka::Accessor<const TBuf*, const TBuf, Idx, 1> data,
uint32_t linearizedIndex,
uint32_t gridSize,
uint64_t n)
Expand Down
2 changes: 1 addition & 1 deletion example/reduce/src/kernel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ struct ReduceKernel
//! \param destination The destination memory.
//! \param n The problem size.
//! \param func The reduction function.
template<typename TAcc, typename TElem, typename TIdx, typename TExtent, typename TDim>
template<typename TAcc, typename TElem, typename TIdx, typename TExtent, std::size_t TDim>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<const TElem*, const TElem, TIdx, TDim> source,
Expand Down
6 changes: 3 additions & 3 deletions example/vectorAdd/src/vectorAdd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ class VectorAddKernel
template<typename TAcc, typename TElem, typename Idx>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<const TElem*, const TElem, Idx, alpaka::DimInt<1>> A,
alpaka::Accessor<const TElem*, const TElem, Idx, alpaka::DimInt<1>> B,
alpaka::Accessor<TElem*, TElem, Idx, alpaka::DimInt<1>> C) const -> void
alpaka::Accessor<const TElem*, const TElem, Idx, 1> A,
alpaka::Accessor<const TElem*, const TElem, Idx, 1> B,
alpaka::Accessor<TElem*, TElem, Idx, 1> C) const -> void
{
static_assert(alpaka::Dim<TAcc>::value == 1, "The VectorAddKernel expects 1-dimensional indices!");

Expand Down
18 changes: 9 additions & 9 deletions include/alpaka/mem/view/Accessor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ namespace alpaka
read_write
};

template<typename Pointer, typename Value, typename Idx, typename Dim>
template<typename Pointer, typename Value, typename Idx, std::size_t Dim>
struct Accessor;

template<typename Pointer, typename Value, typename Idx>
struct Accessor<Pointer, Value, Idx, DimInt<1>>
struct Accessor<Pointer, Value, Idx, 1>
{
ALPAKA_FN_ACC auto& operator[](Vec<DimInt<1>, Idx> i) const
{
Expand All @@ -66,7 +66,7 @@ namespace alpaka
};

template<typename Pointer, typename Value, typename Idx>
struct Accessor<Pointer, Value, Idx, DimInt<2>>
struct Accessor<Pointer, Value, Idx, 2>
{
ALPAKA_FN_ACC auto& operator[](Vec<DimInt<2>, Idx> i) const
{
Expand All @@ -87,7 +87,7 @@ namespace alpaka
};

template<typename Pointer, typename Value, typename Idx>
struct Accessor<Pointer, Value, Idx, DimInt<3>>
struct Accessor<Pointer, Value, Idx, 3>
{
ALPAKA_FN_ACC auto& operator[](Vec<DimInt<3>, Idx> i) const
{
Expand All @@ -112,7 +112,7 @@ namespace alpaka
using Image = cudaTextureObject_t;

template<typename Value, typename Idx>
struct Accessor<Image, Value, Idx, DimInt<1>>
struct Accessor<Image, Value, Idx, 1>
{
ALPAKA_FN_ACC auto operator[](Vec<DimInt<1>, Idx> i) const -> Value
{
Expand All @@ -139,7 +139,7 @@ namespace alpaka
};

template<typename Value, typename Idx>
struct Accessor<Image, Value, Idx, DimInt<2>>
struct Accessor<Image, Value, Idx, 2>
{
ALPAKA_FN_ACC auto operator[](Vec<DimInt<2>, Idx> i) const -> Value
{
Expand All @@ -162,7 +162,7 @@ namespace alpaka
};

template<typename Value, typename Idx>
struct Accessor<Image, Value, Idx, DimInt<3>>
struct Accessor<Image, Value, Idx, 3>
{
ALPAKA_FN_ACC auto operator[](Vec<DimInt<3>, Idx> i) const -> Value
{
Expand Down Expand Up @@ -193,11 +193,11 @@ namespace alpaka
{
using DBuf = std::decay_t<Buf>;
using Idx = Idx<DBuf>;
using Dim = Dim<DBuf>;
constexpr auto dim = Dim<DBuf>::value;
constexpr auto IsConst = Mode == AccessMode::read_only;
using Elem = std::conditional_t<IsConst, const Elem<DBuf>, Elem<DBuf>>;
auto p = getPtrNative(buffer);
return Accessor<Elem*, Elem, Idx, Dim>{
return Accessor<Elem*, Elem, Idx, dim>{
p,
getPitchBytes<PitchIs + 1>(buffer)...,
{extent::getExtent<ExtentIs>(buffer)...}};
Expand Down
4 changes: 2 additions & 2 deletions test/common/include/alpaka/test/mem/view/ViewTest.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ namespace alpaka
template<typename TAcc, typename TIter>
ALPAKA_FN_ACC void operator()(
TAcc const& acc,
alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, alpaka::DimInt<1>> const success,
alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, 1> const success,
TIter const& begin,
TIter const& end,
std::uint8_t const& byte) const
Expand Down Expand Up @@ -183,7 +183,7 @@ namespace alpaka
template<typename TAcc, typename TIterA, typename TIterB>
ALPAKA_FN_ACC void operator()(
TAcc const& acc,
alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, alpaka::DimInt<1>> const success,
alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, 1> const success,
TIterA beginA,
TIterA const& endA,
TIterB beginB) const
Expand Down
12 changes: 8 additions & 4 deletions test/integ/axpy/src/axpy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ class AxpyKernel
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
TElem const& alpha,
alpaka::Accessor<const TElem*, const TElem, TIdx, alpaka::DimInt<1>> const X,
alpaka::Accessor<TElem*, TElem, TIdx, alpaka::DimInt<1>> const Y) const -> void
alpaka::Accessor<const TElem*, const TElem, TIdx, 1> const X,
alpaka::Accessor<TElem*, TElem, TIdx, 1> const Y) const -> void
{
static_assert(alpaka::Dim<TAcc>::value == 1, "The AxpyKernel expects 1-dimensional indices!");

Expand Down Expand Up @@ -164,8 +164,12 @@ TEMPLATE_LIST_TEST_CASE("axpy", "[axpy]", TestAccs)
#endif

// Create the kernel execution task.
auto const taskKernel(
alpaka::createTaskKernel<Acc>(workDiv, kernel, alpha, alpaka::readAccess(memBufAccX), alpaka::access(memBufAccY)));
auto const taskKernel(alpaka::createTaskKernel<Acc>(
workDiv,
kernel,
alpha,
alpaka::readAccess(memBufAccX),
alpaka::access(memBufAccY)));

// Profile the kernel execution.
std::cout << "Execution time: " << alpaka::test::integ::measureTaskRunTimeMs(queue, taskKernel) << " ms"
Expand Down
5 changes: 2 additions & 3 deletions test/integ/cudaOnly/src/cudaNativeFunctions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,8 @@ class CudaOnlyTestKernel
public:
//-----------------------------------------------------------------------------
template<typename TAcc>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, alpaka::DimInt<1>> const success) const -> void
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<bool*, bool, alpaka::Idx<TAcc>, 1> const success)
const -> void
{
alpaka::ignore_unused(acc);

Expand Down
2 changes: 1 addition & 1 deletion test/integ/mandelbrot/src/mandelbrot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class MandelbrotKernel
template<typename TAcc, typename Idx>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<std::uint32_t*, std::uint32_t, Idx, alpaka::DimInt<2>> const colors,
alpaka::Accessor<std::uint32_t*, std::uint32_t, Idx, 2> const colors,
float const& fMinR,
float const& fMaxR,
float const& fMinI,
Expand Down
12 changes: 6 additions & 6 deletions test/integ/matMul/src/matMul.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ class MatMulKernel
TIndex const& n,
TIndex const& k,
TElem const& alpha,
alpaka::Accessor<const TElem*, const TElem, TIndex, alpaka::DimInt<2>> const A,
alpaka::Accessor<const TElem*, const TElem, TIndex, alpaka::DimInt<2>> const B,
alpaka::Accessor<const TElem*, const TElem, TIndex, 2> const A,
alpaka::Accessor<const TElem*, const TElem, TIndex, 2> const B,
TElem const& beta,
alpaka::Accessor<TElem*, TElem, TIndex, alpaka::DimInt<2>> const C) const -> void
alpaka::Accessor<TElem*, TElem, TIndex, 2> const C) const -> void
{
static_assert(
alpaka::Dim<TAcc>::value == 2u,
Expand Down Expand Up @@ -148,10 +148,10 @@ namespace alpaka
TIndex const& n,
TIndex const& k,
TElem const& alpha,
alpaka::Accessor<const TElem*, const TElem, TIndex, alpaka::DimInt<2>> const A,
alpaka::Accessor<const TElem*, const TElem, TIndex, alpaka::DimInt<2>> const B,
alpaka::Accessor<const TElem*, const TElem, TIndex, 2> const A,
alpaka::Accessor<const TElem*, const TElem, TIndex, 2> const B,
TElem const& beta,
alpaka::Accessor<TElem*, TElem, TIndex, alpaka::DimInt<2>> const C)
alpaka::Accessor<TElem*, TElem, TIndex, 2> const C)
{
alpaka::ignore_unused(matMulKernel);
alpaka::ignore_unused(m);
Expand Down
6 changes: 3 additions & 3 deletions test/integ/separableCompilation/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ class SqrtKernel
template<typename TAcc, typename TElem, typename TIdx>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<const TElem*, const TElem, TIdx, alpaka::DimInt<1>> const A,
alpaka::Accessor<const TElem*, const TElem, TIdx, alpaka::DimInt<1>> const B,
alpaka::Accessor<TElem*, TElem, TIdx, alpaka::DimInt<1>> const C) const -> void
alpaka::Accessor<const TElem*, const TElem, TIdx, 1> const A,
alpaka::Accessor<const TElem*, const TElem, TIdx, 1> const B,
alpaka::Accessor<TElem*, TElem, TIdx, 1> const C) const -> void
{
static_assert(alpaka::Dim<TAcc>::value == 1, "The VectorAddKernel expects 1-dimensional indices!");

Expand Down
5 changes: 2 additions & 3 deletions test/integ/sharedMem/src/sharedMem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ class SharedMemKernel
//-----------------------------------------------------------------------------
ALPAKA_NO_HOST_ACC_WARNING
template<typename TAcc, typename Idx>
ALPAKA_FN_ACC auto operator()(
TAcc const& acc,
alpaka::Accessor<Val*, Val, Idx, alpaka::DimInt<1>> const puiBlockRetVals) const -> void
ALPAKA_FN_ACC auto operator()(TAcc const& acc, alpaka::Accessor<Val*, Val, Idx, 1> const puiBlockRetVals) const
-> void
{
static_assert(alpaka::Dim<TAcc>::value == 1, "The SharedMemKernel expects 1-dimensional indices!");

Expand Down

0 comments on commit 7c50157

Please sign in to comment.