Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_CUDANodeMemoryModel.cpp
00001 #include "Kokkos_CUDANodeMemoryModel.hpp"
00002 #include <Teuchos_TypeNameTraits.hpp>
00003 #include <Teuchos_FancyOStream.hpp>
00004 
00005 namespace Kokkos {
00006 
00007   CUDANodeMemoryModel::CUDANodeMemoryModel() 
00008   : allocSize_(0)
00009   {
00010     clearStatistics();
00011   }
00012 
00013   void CUDANodeMemoryModel::clearStatistics() {
00014     numCopiesD2H_ = 0;
00015     numCopiesH2D_ = 0;
00016     numCopiesD2D_ = 0;
00017     bytesCopiedD2H_ = 0;
00018     bytesCopiedH2D_ = 0;
00019     bytesCopiedD2D_ = 0;
00020   }
00021 
00022   void CUDANodeMemoryModel::printStatistics(const RCP< Teuchos::FancyOStream > &os) const {
00023     using std::setw;
00024     using std::endl;
00025     *os << Teuchos::typeName(*this) << " memory transfer statistics" << endl
00026         << setw(3) << ""      << setw(4) << "" << setw(14) << "Num copies"  << setw(4) << "" << setw(14) << "Bytes copied"  << endl
00027         << setw(3) << "D2H"   << setw(4) << "" << setw(14) << numCopiesD2H_ << setw(4) << "" << setw(14) << bytesCopiedD2H_ << endl
00028         << setw(3) << "H2D"   << setw(4) << "" << setw(14) << numCopiesH2D_ << setw(4) << "" << setw(14) << bytesCopiedH2D_ << endl
00029         << setw(3) << "D2D"   << setw(4) << "" << setw(14) << numCopiesD2D_ << setw(4) << "" << setw(14) << bytesCopiedD2D_ << endl;
00030   }
00031 
00032 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends