Loading Documentation/Examples/Algorithms/Segments/.SegmentsExample_General.cpp.swpdeleted 100644 → 0 −12 KiB File deleted. View file Documentation/Examples/Algorithms/Segments/CMakeLists.txt +5 −0 Original line number Diff line number Diff line set( COMMON_EXAMPLES SegmentsExample_General SegmentsExample_CSR_constructor_1 SegmentsExample_CSR_constructor_2 SegmentsExample_CSR_getSerializationType SegmentsExample_CSR_getSegmentsType SegmentsExample_CSR_setSegmentsSizes ) if( BUILD_CUDA ) Loading Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_1.cpp 0 → 100644 +51 −0 Original line number Diff line number Diff line #include <iostream> #include <functional> #include <TNL/Containers/Vector.h> #include <TNL/Algorithms/Segments/CSR.h> #include <TNL/Devices/Host.h> #include <TNL/Devices/Cuda.h> template< typename Device > void SegmentsExample() { using SegmentsType = typename TNL::Algorithms::Segments::CSR< Device, int >; /*** * Create segments with given segments sizes. */ TNL::Containers::Vector< int, Device > segmentsSizes{ 1, 2, 3, 4, 5 }; SegmentsType segments( segmentsSizes ); std::cout << "Segments sizes are: " << segments << std::endl; /*** * Allocate array for the segments; */ TNL::Containers::Array< double, Device > data( segments.getStorageSize(), 0.0 ); /*** * Insert data into particular segments. */ auto data_view = data.getView(); segments.forAllElements( [=] __cuda_callable__ ( int segmentIdx, int localIdx, int globalIdx, bool& compute ) mutable { if( localIdx <= segmentIdx ) data_view[ globalIdx ] = segmentIdx; } ); /*** * Print the data managed by the segments. */ auto fetch = [=] __cuda_callable__ ( int globalIdx ) -> double { return data_view[ globalIdx ]; }; printSegments( segments, fetch, std::cout ); } int main( int argc, char* argv[] ) { std::cout << "Example of CSR segments on host: " << std::endl; SegmentsExample< TNL::Devices::Host >(); #ifdef HAVE_CUDA std::cout << "Example of CSR segments on CUDA GPU: " << std::endl; SegmentsExample< TNL::Devices::Cuda >(); #endif return EXIT_SUCCESS; } Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_1.cu 0 → 120000 +1 −0 Original line number Diff line number Diff line SegmentsExample_CSR_constructor_1.cpp No newline at end of file Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_2.cpp 0 → 100644 +50 −0 Original line number Diff line number Diff line #include <iostream> #include <functional> #include <TNL/Containers/Vector.h> #include <TNL/Algorithms/Segments/CSR.h> #include <TNL/Devices/Host.h> #include <TNL/Devices/Cuda.h> template< typename Device > void SegmentsExample() { using SegmentsType = typename TNL::Algorithms::Segments::CSR< Device, int >; /*** * Create segments with given segments sizes. */ SegmentsType segments{ 1, 2, 3, 4, 5 }; std::cout << "Segments sizes are: " << segments << std::endl; /*** * Allocate array for the segments; */ TNL::Containers::Array< double, Device > data( segments.getStorageSize(), 0.0 ); /*** * Insert data into particular segments. */ auto data_view = data.getView(); segments.forAllElements( [=] __cuda_callable__ ( int segmentIdx, int localIdx, int globalIdx, bool& compute ) mutable { if( localIdx <= segmentIdx ) data_view[ globalIdx ] = segmentIdx; } ); /*** * Print the data managed by the segments. */ auto fetch = [=] __cuda_callable__ ( int globalIdx ) -> double { return data_view[ globalIdx ]; }; printSegments( segments, fetch, std::cout ); } int main( int argc, char* argv[] ) { std::cout << "Example of CSR segments on host: " << std::endl; SegmentsExample< TNL::Devices::Host >(); #ifdef HAVE_CUDA std::cout << "Example of CSR segments on CUDA GPU: " << std::endl; SegmentsExample< TNL::Devices::Cuda >(); #endif return EXIT_SUCCESS; } Loading
Documentation/Examples/Algorithms/Segments/.SegmentsExample_General.cpp.swpdeleted 100644 → 0 −12 KiB File deleted. View file
Documentation/Examples/Algorithms/Segments/CMakeLists.txt +5 −0 Original line number Diff line number Diff line set( COMMON_EXAMPLES SegmentsExample_General SegmentsExample_CSR_constructor_1 SegmentsExample_CSR_constructor_2 SegmentsExample_CSR_getSerializationType SegmentsExample_CSR_getSegmentsType SegmentsExample_CSR_setSegmentsSizes ) if( BUILD_CUDA ) Loading
Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_1.cpp 0 → 100644 +51 −0 Original line number Diff line number Diff line #include <iostream> #include <functional> #include <TNL/Containers/Vector.h> #include <TNL/Algorithms/Segments/CSR.h> #include <TNL/Devices/Host.h> #include <TNL/Devices/Cuda.h> template< typename Device > void SegmentsExample() { using SegmentsType = typename TNL::Algorithms::Segments::CSR< Device, int >; /*** * Create segments with given segments sizes. */ TNL::Containers::Vector< int, Device > segmentsSizes{ 1, 2, 3, 4, 5 }; SegmentsType segments( segmentsSizes ); std::cout << "Segments sizes are: " << segments << std::endl; /*** * Allocate array for the segments; */ TNL::Containers::Array< double, Device > data( segments.getStorageSize(), 0.0 ); /*** * Insert data into particular segments. */ auto data_view = data.getView(); segments.forAllElements( [=] __cuda_callable__ ( int segmentIdx, int localIdx, int globalIdx, bool& compute ) mutable { if( localIdx <= segmentIdx ) data_view[ globalIdx ] = segmentIdx; } ); /*** * Print the data managed by the segments. */ auto fetch = [=] __cuda_callable__ ( int globalIdx ) -> double { return data_view[ globalIdx ]; }; printSegments( segments, fetch, std::cout ); } int main( int argc, char* argv[] ) { std::cout << "Example of CSR segments on host: " << std::endl; SegmentsExample< TNL::Devices::Host >(); #ifdef HAVE_CUDA std::cout << "Example of CSR segments on CUDA GPU: " << std::endl; SegmentsExample< TNL::Devices::Cuda >(); #endif return EXIT_SUCCESS; }
Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_1.cu 0 → 120000 +1 −0 Original line number Diff line number Diff line SegmentsExample_CSR_constructor_1.cpp No newline at end of file
Documentation/Examples/Algorithms/Segments/SegmentsExample_CSR_constructor_2.cpp 0 → 100644 +50 −0 Original line number Diff line number Diff line #include <iostream> #include <functional> #include <TNL/Containers/Vector.h> #include <TNL/Algorithms/Segments/CSR.h> #include <TNL/Devices/Host.h> #include <TNL/Devices/Cuda.h> template< typename Device > void SegmentsExample() { using SegmentsType = typename TNL::Algorithms::Segments::CSR< Device, int >; /*** * Create segments with given segments sizes. */ SegmentsType segments{ 1, 2, 3, 4, 5 }; std::cout << "Segments sizes are: " << segments << std::endl; /*** * Allocate array for the segments; */ TNL::Containers::Array< double, Device > data( segments.getStorageSize(), 0.0 ); /*** * Insert data into particular segments. */ auto data_view = data.getView(); segments.forAllElements( [=] __cuda_callable__ ( int segmentIdx, int localIdx, int globalIdx, bool& compute ) mutable { if( localIdx <= segmentIdx ) data_view[ globalIdx ] = segmentIdx; } ); /*** * Print the data managed by the segments. */ auto fetch = [=] __cuda_callable__ ( int globalIdx ) -> double { return data_view[ globalIdx ]; }; printSegments( segments, fetch, std::cout ); } int main( int argc, char* argv[] ) { std::cout << "Example of CSR segments on host: " << std::endl; SegmentsExample< TNL::Devices::Host >(); #ifdef HAVE_CUDA std::cout << "Example of CSR segments on CUDA GPU: " << std::endl; SegmentsExample< TNL::Devices::Cuda >(); #endif return EXIT_SUCCESS; }