Skip to content
Snippets Groups Projects
Commit d413d5c1 authored by Yannik Müller's avatar Yannik Müller
Browse files

Added files from master without history

parents
Branches
Tags
No related merge requests found
Showing
with 81 additions and 0 deletions
This diff is collapsed.
/****************************************************************************
** LinkTest **
*****************************************************************************
** Copyright (c) 2008-2022 **
** Forschungszentrum Juelich, Juelich Supercomputing Centre **
** **
** See the file COPYRIGHT in the package base directory for details **
****************************************************************************/
#ifndef LINKTEST_MEMORY_CUDA_H
#define LINKTEST_MEMORY_CUDA_H
#include "gpu_nvidia.h"
namespace linktest
{
namespace cuda
{
template<typename T>
void fill(GpuContext* ctx, T* start, T* end, const T& val);
}
}
#endif
This diff is collapsed.
/****************************************************************************
** LinkTest **
*****************************************************************************
** Copyright (c) 2008-2022 **
** Forschungszentrum Juelich, Juelich Supercomputing Centre **
** **
** See the file COPYRIGHT in the package base directory for details **
****************************************************************************/
#include "memory.h"
#include <stdlib.h>
// A memory region on some memory adress space.
class MemoryBufferMulti{
public:
//Constructor
MemoryBufferMulti(Allocator* buffer_allocator,std::size_t buffer_number,std::size_t buffer_size,std::size_t alignment);
MemoryBufferMulti(Allocator* buffer_allocator,std::size_t buffer_number,std::size_t buffer_size,std::size_t alignment,std::uint_fast64_t buf_mt_seed);
//Destructor
~MemoryBufferMulti();
//Fill buffers
void fill();
//Check Buffers
int check(std::size_t* buffer, std::size_t* byte);
//Getters
constexpr Allocator* allocator() const;
constexpr AddressSpace::ID address_space_id() const;
constexpr void** array_pointer() const;
constexpr std::size_t number() const;
constexpr std::size_t size() const;
constexpr std::size_t alignment() const;
constexpr int use_mt() const;
constexpr std::uint_fast64_t buf_mt_seed() const;
template<typename T>
constexpr T* array_pointer() const;
private:
Allocator* allocator_ ;
AddressSpace::ID addr_space_id_;
void** array_pointer_;
std::size_t number_ ;
std::size_t size_ ;
std::size_t alignment_ ;
int use_mt_=0 ; //Mersenne Twister 19937 (MT19337) Pseudo-Random-Number Generator (PRNG) if non-zero
std::uint_fast64_t buf_mt_seed_ ; //MT19337 Seed
};
constexpr AddressSpace::ID MemoryBufferMulti::address_space_id() const{return addr_space_id_ ;}
constexpr Allocator* MemoryBufferMulti::allocator() const{return allocator_ ;}
constexpr void** MemoryBufferMulti::array_pointer() const{return array_pointer_ ;}
constexpr std::size_t MemoryBufferMulti::number() const{return number_ ;}
constexpr std::size_t MemoryBufferMulti::size() const{return size_ ;}
constexpr std::size_t MemoryBufferMulti::alignment() const{return alignment_ ;}
constexpr int MemoryBufferMulti::use_mt() const{return use_mt_ ;}
constexpr std::uint_fast64_t MemoryBufferMulti::buf_mt_seed() const{return buf_mt_seed_ ;}
template<typename T>
constexpr T* MemoryBufferMulti::array_pointer() const{return reinterpret_cast<T*>(array_pointer());}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment