Skip to content
Snippets Groups Projects
Commit 2ee53835 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber Committed by Tomáš Oberhuber
Browse files

Added segments based SlicedEllpack sparse matrix unit test.

parent 258f4d76
No related branches found
No related tags found
1 merge request!48Segments
......@@ -326,8 +326,8 @@ save( File& file ) const
file.save( &size );
file.save( &alignedSize );
file.save( &segmentsCount );
this->sliceOffsets.save( file );
this->sliceSegmentSizes.save( file );
file << this->sliceOffsets;
file << this->sliceSegmentSizes;
}
template< typename Device,
......@@ -341,8 +341,8 @@ load( File& file )
file.load( &size );
file.load( &alignedSize );
file.load( &segmentsCount );
this->sliceOffsets.load( file );
this->sliceSegmentSizes.load( file );
file >> this->sliceOffsets;
file >> this->sliceSegmentSizes;
}
} // namespace Segments
......
......@@ -34,6 +34,9 @@ IF( BUILD_CUDA )
CUDA_ADD_EXECUTABLE( SparseMatrixTest_Ellpack_segments SparseMatrixTest_Ellpack_segments.cu OPTIONS ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SparseMatrixTest_Ellpack_segments ${GTEST_BOTH_LIBRARIES} )
CUDA_ADD_EXECUTABLE( SparseMatrixTest_SlicedEllpack_segments SparseMatrixTest_SlicedEllpack_segments.cu OPTIONS ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SparseMatrixTest_SlicedEllpack_segments ${GTEST_BOTH_LIBRARIES} )
ELSE( BUILD_CUDA )
ADD_EXECUTABLE( SparseMatrixCopyTest SparseMatrixCopyTest.cpp )
TARGET_COMPILE_OPTIONS( SparseMatrixCopyTest PRIVATE ${CXX_TESTS_FLAGS} )
......@@ -81,6 +84,9 @@ ELSE( BUILD_CUDA )
TARGET_COMPILE_OPTIONS( SparseMatrixTest_Ellpack_segments PRIVATE ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SparseMatrixTest_Ellpack_segments ${GTEST_BOTH_LIBRARIES} )
ADD_EXECUTABLE( SparseMatrixTest_SlicedEllpack_segments SparseMatrixTest_SlicedEllpack_segments.cpp )
TARGET_COMPILE_OPTIONS( SparseMatrixTest_SlicedEllpack_segments PRIVATE ${CXX_TESTS_FLAGS} )
TARGET_LINK_LIBRARIES( SparseMatrixTest_SlicedEllpack_segments ${GTEST_BOTH_LIBRARIES} )
ENDIF( BUILD_CUDA )
......@@ -101,6 +107,7 @@ ADD_TEST( SparseMatrixTest_SlicedEllpack ${EXECUTABLE_OUTPUT_PATH}/SparseMatrixT
# Segments tests
ADD_TEST( SparseMatrixTest_CSR_segments ${EXECUTABLE_OUTPUT_PATH}/SparseMatrixTest_CSR_segments${CMAKE_EXECUTABLE_SUFFIX} )
ADD_TEST( SparseMatrixTest_Ellpack_segments ${EXECUTABLE_OUTPUT_PATH}/SparseMatrixTest_Ellpack_segments${CMAKE_EXECUTABLE_SUFFIX} )
ADD_TEST( SparseMatrixTest_SlicedEllpack_segments ${EXECUTABLE_OUTPUT_PATH}/SparseMatrixTest_SlicedEllpack_segments${CMAKE_EXECUTABLE_SUFFIX} )
if( ${BUILD_MPI} )
if( BUILD_CUDA )
......
#include "SparseMatrixTest_SlicedEllpack.h"
#include "SparseMatrixTest_SlicedEllpack_segments.h"
#include "SparseMatrixTest_SlicedEllpack.h"
#include "SparseMatrixTest_SlicedEllpack_segments.h"
/***************************************************************************
SparseMatrixTest_SlicedEllpack.h - description
SparseMatrixTest_SlicedEllpack_segments.h - description
-------------------
begin : Nov 2, 2018
copyright : (C) 2018 by Tomas Oberhuber et al.
begin : Dec 9, 2019
copyright : (C) 2019 by Tomas Oberhuber et al.
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include <TNL/Matrices/SlicedEllpack.h>
#include <TNL/Containers/Segments/SlicedEllpack.h>
#include <TNL/Matrices/SparseMatrix.h>
#include "SparseMatrixTest.hpp"
#include <iostream>
......@@ -24,38 +26,49 @@ protected:
using SlicedEllpackMatrixType = Matrix;
};
////
// Row-major format is used for the host system
template< typename Device, typename Index >
using RowMajorSlicedEllpack = TNL::Containers::Segments::SlicedEllpack< Device, Index, true, 32 >;
////
// Column-major format is used for GPUs
template< typename Device, typename Index >
using ColumnMajorSlicedEllpack = TNL::Containers::Segments::SlicedEllpack< Device, Index, false, 32 >;
// types for which MatrixTest is instantiated
using SlicedEllpackMatrixTypes = ::testing::Types
<
TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, short >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, short >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, short >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, short >,
TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, int >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, int >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, int >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, int >,
TNL::Matrices::SlicedEllpack< int, TNL::Devices::Host, long >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Host, long >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Host, long >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Host, long >
TNL::Matrices::SparseMatrix< int, RowMajorSlicedEllpack, TNL::Devices::Host, short >,
TNL::Matrices::SparseMatrix< long, RowMajorSlicedEllpack, TNL::Devices::Host, short >,
TNL::Matrices::SparseMatrix< float, RowMajorSlicedEllpack, TNL::Devices::Host, short >,
TNL::Matrices::SparseMatrix< double, RowMajorSlicedEllpack, TNL::Devices::Host, short >,
TNL::Matrices::SparseMatrix< int, RowMajorSlicedEllpack, TNL::Devices::Host, int >,
TNL::Matrices::SparseMatrix< long, RowMajorSlicedEllpack, TNL::Devices::Host, int >,
TNL::Matrices::SparseMatrix< float, RowMajorSlicedEllpack, TNL::Devices::Host, int >,
TNL::Matrices::SparseMatrix< double, RowMajorSlicedEllpack, TNL::Devices::Host, int >,
TNL::Matrices::SparseMatrix< int, RowMajorSlicedEllpack, TNL::Devices::Host, long >,
TNL::Matrices::SparseMatrix< long, RowMajorSlicedEllpack, TNL::Devices::Host, long >,
TNL::Matrices::SparseMatrix< float, RowMajorSlicedEllpack, TNL::Devices::Host, long >,
TNL::Matrices::SparseMatrix< double, RowMajorSlicedEllpack, TNL::Devices::Host, long >
#ifdef HAVE_CUDA
,TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, short >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, short >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, short >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, short >,
TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, int >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, int >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, int >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, int >,
TNL::Matrices::SlicedEllpack< int, TNL::Devices::Cuda, long >,
TNL::Matrices::SlicedEllpack< long, TNL::Devices::Cuda, long >,
TNL::Matrices::SlicedEllpack< float, TNL::Devices::Cuda, long >,
TNL::Matrices::SlicedEllpack< double, TNL::Devices::Cuda, long >
,TNL::Matrices::SparseMatrix< int, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, short >,
TNL::Matrices::SparseMatrix< long, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, short >,
TNL::Matrices::SparseMatrix< float, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, short >,
TNL::Matrices::SparseMatrix< double, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, short >,
TNL::Matrices::SparseMatrix< int, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, int >,
TNL::Matrices::SparseMatrix< long, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, int >,
TNL::Matrices::SparseMatrix< float, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, int >,
TNL::Matrices::SparseMatrix< double, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, int >,
TNL::Matrices::SparseMatrix< int, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, long >,
TNL::Matrices::SparseMatrix< long, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, long >,
TNL::Matrices::SparseMatrix< float, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, long >,
TNL::Matrices::SparseMatrix< double, ColumnMajorSlicedEllpack, TNL::Devices::Cuda, long >
#endif
>;
TYPED_TEST_SUITE( SlicedEllpackMatrixTest, SlicedEllpackMatrixTypes );
TYPED_TEST_SUITE( SlicedEllpackMatrixTest, SlicedEllpackMatrixTypes);
TYPED_TEST( SlicedEllpackMatrixTest, setDimensionsTest )
{
......@@ -124,7 +137,7 @@ TYPED_TEST( SlicedEllpackMatrixTest, saveAndLoadTest )
{
using SlicedEllpackMatrixType = typename TestFixture::SlicedEllpackMatrixType;
test_SaveAndLoad< SlicedEllpackMatrixType >( "test_SparseMatrixTest_SlicedEllpack" );
test_SaveAndLoad< SlicedEllpackMatrixType >( "test_SparseMatrixTest_SlicedEllpack_segments" );
}
TYPED_TEST( SlicedEllpackMatrixTest, printTest )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment