         std::cerr << "Usage: " << argv[0] << " <problem.dat> [dev_id]" << std::endl;
         return 1;
     }
+#ifndef WIN32
     amgcl::profiler<> prof(argv[0]);
+#endif
 
     int dev_cnt;
     cudaGetDeviceCount(&dev_cnt);

            n, n, row.data(), col.data(), val.data()
            );

    prof.tic("setup");
    AMG amg(A, prm);
    prof.toc("setup");

    std::cout << amg  << std::endl;

    thrust::device_vector<real> f(rhs.begin(), rhs.end());
    thrust::device_vector<real> x(n, 0);

    prof.tic("solve");
    std::pair<int, real> cnv = amgcl::solve(amg.top_matrix(), f, amg, x,
            amgcl::gmres_tag());
    prof.toc("solve");

    std::cout << "Iterations: " << cnv.first  << std::endl
              << "Error:      " << cnv.second << std::endl
              << std::endl
              << prof << std::endl;
}

#include <amgcl/aggr_plain.hpp>
#include <amgcl/interp_smoothed_aggr.hpp>
#include <amgcl/level_cuda.hpp>

#ifndef WIN32
// Boost.chrono used in profiler does not work with nvcc/windows combination.
#  include <amgcl/profiler.hpp>
#endif

#include "read.hpp"

