Commit 74ac50b7 authored by Cianciosa M R's avatar Cianciosa M R
Browse files

Initialize the cuda driver and check compile errors.

parent a492f112
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -81,15 +81,15 @@ int main(int argc, const char * argv[]) {
            ky->set(backend::base_cast<cpu> (0.0));
            kz->set(backend::base_cast<cpu> (0.0));

            auto eq = equilibrium::make_slab_density<cpu> ();
            //auto eq = equilibrium::make_no_magnetic_field<cpu> ();
            //auto eq = equilibrium::make_slab_density<cpu> ();
            auto eq = equilibrium::make_no_magnetic_field<cpu> ();

            //solver::split_simplextic<dispersion::bohm_gross<cpu>>
            solver::split_simplextic<dispersion::bohm_gross<cpu>>
            //solver::rk4<dispersion::bohm_gross<cpu>>
            //solver::rk4<dispersion::simple<cpu>>
            //solver::rk4<dispersion::ordinary_wave<cpu>>
            //solver::rk4<dispersion::extra_ordinary_wave<cpu>>
            solver::rk4<dispersion::cold_plasma<cpu>>
            //solver::rk4<dispersion::cold_plasma<cpu>>
                solve(omega, kx, ky, kz, x, y, z, t, 60.0/num_times, eq);
            solve.init(kx);
            solve.compile(num_times, num_rays);
+24 −6
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@
#include "node.hpp"

namespace gpu {
//  Initialize the cuda driver.
    static const CUresult init = cuInit(0);

//------------------------------------------------------------------------------
///  @brief Class representing a cuda gpu context.
//------------------------------------------------------------------------------
@@ -104,17 +107,32 @@ namespace gpu {
            std::cout << "CUDA GPU info." << std::endl;
            std::cout << "  Major compute capability : " << compute_version << std::endl;

            cuDeviceGetAttribute(&compute_version,
                                 CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR,
                                 device);

            std::cout << "  Minor compute capability : " << compute_version << std::endl;

//  FIXME: Hardcoded for ada gpus for now.
            std::array<char *, 2> options({
                "--gpu-architecture=compute_90",
                "--std=c++20"
            std::array<const char *, 2> options({
                "--gpu-architecture=compute_70",
                "--std=c++17"
            });
            nvrtcCompileProgram(kernel_program, 2, options.data());

            char *mangled_kernel_name;
            if (nvrtcCompileProgram(kernel_program, 2, options.data())) {
                size_t log_size;
                nvrtcGetProgramLogSize(kernel_program, &log_size);

                char *log = static_cast<char *> (malloc(log_size));
                nvrtcGetProgramLog(kernel_program, log);
                std::cout << log << std::endl;
                free(log);
            }

            const char *mangled_kernel_name;
            nvrtcGetLoweredName(kernel_program,
                                kernel_name.c_str(),
                                const_cast<const char **> (&mangled_kernel_name));
                                &mangled_kernel_name);

            std::cout << "  Mangled Kernel Name      : " << mangled_kernel_name << std::endl;