diff --git a/common/CudaWorker/CudaWorkerThread.hpp b/common/CudaWorker/CudaWorkerThread.hpp index e912c0c6..245247c2 100644 --- a/common/CudaWorker/CudaWorkerThread.hpp +++ b/common/CudaWorker/CudaWorkerThread.hpp @@ -18,6 +18,13 @@ #include + +inline int format_as(cudaError_enum type) { + return static_cast(type); +} + + + #include "FieldWorkers.hpp" #include diff --git a/common/CudaWorker/FieldWorkers.hpp b/common/CudaWorker/FieldWorkers.hpp index 354b0a05..6ce8888a 100644 --- a/common/CudaWorker/FieldWorkers.hpp +++ b/common/CudaWorker/FieldWorkers.hpp @@ -15,7 +15,8 @@ */ #pragma once -#include +//#include +#include "../cublas_proxy/cublas_proxy.hpp" #include #if (CUDA_VERSION_USED >= 11) @@ -23,8 +24,12 @@ #endif #include + #include #include +inline int format_as(cublasStatus_t type) { + return static_cast(type); + } using namespace Dcgm; diff --git a/common/DcgmLogging.h b/common/DcgmLogging.h index 013d16f8..533002ce 100755 --- a/common/DcgmLogging.h +++ b/common/DcgmLogging.h @@ -31,7 +31,7 @@ #include #include #include - +#include "format.hpp" // now define formatting for classes in this module #define DCGM_LOGGING_SEVERITY_OPTIONS "NONE, FATAL, ERROR, WARN, INFO, DEBUG, VERB" #define DCGM_LOGGING_SEVERITY_STRING_VERBOSE "VERB" diff --git a/common/DcgmMutex.cpp b/common/DcgmMutex.cpp index 1fa19488..bf727efc 100644 --- a/common/DcgmMutex.cpp +++ b/common/DcgmMutex.cpp @@ -21,6 +21,8 @@ #include #include +inline int format_as(dcgmMutexSt type) { return static_cast(type);} + /*****************************************************************************/ DcgmMutex::DcgmMutex(int timeoutMs) // Cast to long long to avoid overflowing before widening to a long long diff --git a/common/DcgmWatchTable.cpp b/common/DcgmWatchTable.cpp index 26b1ef87..077ac5b7 100755 --- a/common/DcgmWatchTable.cpp +++ b/common/DcgmWatchTable.cpp @@ -18,7 +18,7 @@ #include "DcgmLogging.h" #include "DcgmUtilities.h" #include "DcgmWatchTable.h" - +inline int format_as(DcgmWatcherType_t type) { return static_cast(type);} /*****************************************************************************/ DcgmWatchTable::DcgmWatchTable() : m_entityWatchHashTable() diff --git a/common/tests/TaskRunnerTests.cpp b/common/tests/TaskRunnerTests.cpp index 45c6c117..7dd8ed5a 100755 --- a/common/tests/TaskRunnerTests.cpp +++ b/common/tests/TaskRunnerTests.cpp @@ -288,7 +288,7 @@ TEST_CASE("TaskRunner: Limited Queue") tr.Stop(); fmt::print("Wait iterations elapsed: {}\n", cWaitIterations - waitIterations); - fmt::print("Iterations: {}\nExecutions: {}\nFailed to add: {}\n", iterations, executed, failedToAdd); + fmt::print("Iterations: {}\nExecutions: {}\nFailed to add: {}\n", (int)iterations, (int)executed, (int)failedToAdd); REQUIRE(executed >= cTaskRunnerCapacity); REQUIRE((failedToAdd + executed) == iterations); } @@ -310,4 +310,4 @@ TEST_CASE("TaskRunner: Task with attempts") REQUIRE(fut.has_value()); REQUIRE_THROWS_AS((*fut).get(), std::future_error); tr.Stop(); -} \ No newline at end of file +} diff --git a/dcgmlib/format.hpp b/dcgmlib/format.hpp new file mode 100644 index 00000000..bd6b35e4 --- /dev/null +++ b/dcgmlib/format.hpp @@ -0,0 +1,30 @@ +#ifndef DCGM_FORMAT_H +#define DCGM_FORMAT_H +#ifdef DcgmWatcherType_t +inline int format_as(DcgmWatcherType_t type) { return static_cast(type);} +#endif +inline int format_as(dcgmChipArchitecture_enum type) { return static_cast(type);} +inline int format_as(dcgmConfigType_enum type) { return static_cast(type);} +inline int format_as(dcgmDiagnosticLevel_t type) { return static_cast(type);} + +inline int format_as(dcgmGroupType_enum type) { return static_cast(type);} +inline int format_as(dcgmHealthSystems_enum type) { return static_cast(type);} +inline int format_as(dcgmModuleId_t type) { return static_cast(type);} +inline int format_as(dcgmModuleStatus_t type) { return static_cast(type);} +//inline int format_as(dcgmMutexSt type) { return static_cast(type);} + +#ifdef dcgmNvLinkLinkState +inline int format_as(dcgmNvLinkLinkState type) { return static_cast(type);} +#endif +inline int format_as(dcgmOrder_enum type) { return static_cast(type);} +inline int format_as(dcgmPolicyCondition_enum type) { return static_cast(type);} +inline int format_as(dcgmPolicyValidation_enum type) { return static_cast(type);} +inline int format_as(dcgmPolicyAction_enum type) { return static_cast(type);} + +inline int format_as(dcgmReturn_enum type) { return static_cast(type);} +inline int format_as(dcgm_field_entity_group_t type) { return static_cast(type);} + +#ifdef nvmlReturn_enum +inline int format_as(nvmlReturn_enum type) { return static_cast(type);} +#endif +#endif diff --git a/dcgmlib/src/DcgmCacheManager.cpp b/dcgmlib/src/DcgmCacheManager.cpp index e62d81ac..ad81c1ed 100644 --- a/dcgmlib/src/DcgmCacheManager.cpp +++ b/dcgmlib/src/DcgmCacheManager.cpp @@ -27,10 +27,8 @@ #include #include #include - #include #include - #include #include #include @@ -43,6 +41,10 @@ #include #include +inline int format_as(nvmlReturn_enum type) { return static_cast(type);} +inline int format_as(dcgmNvLinkLinkState_t type) { return static_cast(type);} +inline int format_as(DcgmWatcherType_t type) { return static_cast(type);} +inline int format_as(dcgmEntityStatusType_enum type) { return static_cast(type);} #define DRIVER_VERSION_510 510 diff --git a/dcgmlib/src/DcgmGroupManager.cpp b/dcgmlib/src/DcgmGroupManager.cpp index f49d9b18..180fad8b 100755 --- a/dcgmlib/src/DcgmGroupManager.cpp +++ b/dcgmlib/src/DcgmGroupManager.cpp @@ -25,7 +25,7 @@ #include "DcgmSettings.h" #include #include - +inline int format_as(dcgmEntityStatusType_enum type) { return static_cast(type);} /***************************************************************************** * Implementation for Group Manager Class *****************************************************************************/ diff --git a/dcgmlib/src/DcgmHostEngineHandler.cpp b/dcgmlib/src/DcgmHostEngineHandler.cpp index 1a9b2a0e..01c9aab5 100644 --- a/dcgmlib/src/DcgmHostEngineHandler.cpp +++ b/dcgmlib/src/DcgmHostEngineHandler.cpp @@ -45,7 +45,7 @@ #include #include #endif - +inline int format_as(DcgmWatcherType_t type) { return static_cast(type);} DcgmHostEngineHandler *DcgmHostEngineHandler::mpHostEngineHandlerInstance = nullptr; DcgmModuleCore DcgmHostEngineHandler::mModuleCoreObj; diff --git a/dcgmlib/src/DcgmVgpu.cpp b/dcgmlib/src/DcgmVgpu.cpp index 2b260f0c..5f49f747 100644 --- a/dcgmlib/src/DcgmVgpu.cpp +++ b/dcgmlib/src/DcgmVgpu.cpp @@ -21,7 +21,7 @@ #include "dcgm_structs.h" #include "dcgm_structs_internal.h" #include - +inline int format_as(nvmlReturn_enum type) { return static_cast(type);} /*****************************************************************************/ static std::string_view ConvertNvmlGridLicenseStateToString(unsigned int licenseState) { diff --git a/dcgmproftester/DcgmProfTester.cpp b/dcgmproftester/DcgmProfTester.cpp index ce571056..1be7646f 100755 --- a/dcgmproftester/DcgmProfTester.cpp +++ b/dcgmproftester/DcgmProfTester.cpp @@ -26,7 +26,7 @@ #include "dcgm_structs.h" #include "timelib.h" #include "vector_types.h" -#include +#include "../cublas_proxy/cublas_proxy.hpp" #include #include diff --git a/dcgmproftester/PhysicalGpu.cpp b/dcgmproftester/PhysicalGpu.cpp index 834c0ea9..da66a35c 100644 --- a/dcgmproftester/PhysicalGpu.cpp +++ b/dcgmproftester/PhysicalGpu.cpp @@ -25,7 +25,8 @@ #include "dcgm_fields_internal.hpp" #include "timelib.h" #include "vector_types.h" -#include +//#include +#include "../cublas_proxy/cublas_proxy.hpp" #include #include diff --git a/modules/nvswitch/DcgmNvSwitchManager.cpp b/modules/nvswitch/DcgmNvSwitchManager.cpp index aaf189d6..41b09155 100755 --- a/modules/nvswitch/DcgmNvSwitchManager.cpp +++ b/modules/nvswitch/DcgmNvSwitchManager.cpp @@ -17,16 +17,15 @@ #include #include #include - #include #include - #include "FieldIds.h" #include "NvSwitchData.h" #include "UpdateFunctions.h" - #include "DcgmNvSwitchManager.h" +inline int format_as(dcgmNvLinkLinkState_t type) { return static_cast(type);} + namespace DcgmNs { using phys_id_t = uint32_t; diff --git a/modules/policy/DcgmPolicyManager.h b/modules/policy/DcgmPolicyManager.h index 13a45726..c877e5d1 100644 --- a/modules/policy/DcgmPolicyManager.h +++ b/modules/policy/DcgmPolicyManager.h @@ -167,4 +167,6 @@ class DcgmPolicyManager dcgmReturn_t WatchFields(dcgm_connection_id_t connectionId); }; +inline int format_as(DcgmViolationPolicyAlert_enum type) { return static_cast(type);} + #endif // DCGMPOLICYMANAGER_H diff --git a/nvml-injection/include/InjectionArgument.h b/nvml-injection/include/InjectionArgument.h index 4338aab0..975121af 100644 --- a/nvml-injection/include/InjectionArgument.h +++ b/nvml-injection/include/InjectionArgument.h @@ -2039,12 +2039,18 @@ class InjectionArgument return m_value.processInfo_v1Ptr; } + /* +nvml-injection/include/InjectionArgument.h:2042:5: error: ‘InjectionArgument::InjectionArgument(nvmlProcessInfo_v2_t*)’ cannot be overloaded with ‘InjectionArgument::InjectionArgument(nvmlProcessInfo_t*)’ + 2042 | InjectionArgument(nvmlProcessInfo_v2_t *processInfo_v2Ptr) + | ^~~~~~~~~~~~~~~~~ + InjectionArgument(nvmlProcessInfo_v2_t *processInfo_v2Ptr) : m_type(INJECTION_PROCESSINFO_V2_PTR) { memset(&m_value, 0, sizeof(m_value)); m_value.processInfo_v2Ptr = processInfo_v2Ptr; } + */ nvmlProcessInfo_v2_t *AsProcessInfo_v2Ptr() const { return m_value.processInfo_v2Ptr; diff --git a/nvvs/include/JsonResult.hpp b/nvvs/include/JsonResult.hpp index 7f44ac0e..fd35f836 100644 --- a/nvvs/include/JsonResult.hpp +++ b/nvvs/include/JsonResult.hpp @@ -28,6 +28,10 @@ #include #include +inline int format_as(nvvsReturn_t type) { + return static_cast(type); +} + /* * This file contains the JSON serialization and deserialization logic and structures for the NVVS JSON result format. * Here is an example of the JSON format: @@ -69,6 +73,7 @@ namespace DcgmNs::Nvvs::Json { + struct Info { std::vector messages; diff --git a/nvvs/plugin_src/memory/l1tag.cu b/nvvs/plugin_src/memory/l1tag.cu index 7a4ebf40..fe87aaf4 100644 --- a/nvvs/plugin_src/memory/l1tag.cu +++ b/nvvs/plugin_src/memory/l1tag.cu @@ -15,7 +15,7 @@ */ #include "L1TagCuda.h" -#include "newrandom.h" +//#include "newrandom.h" __device__ void ReportError ( @@ -66,11 +66,11 @@ extern "C" __global__ void InitL1Data(const L1TagParams params) // Init RNG (each SM data region will have the same data) unsigned64 s[2]; - InitRand<2>(s, params.randSeed + threadIdx.x); + //InitRand<2>(s, params.randSeed + threadIdx.x); for (uint32_t i = threadIdx.x; i < smidDataBytes / sizeof(*buf); i += blockDim.x) { - const uint16_t rnd = static_cast(FastRand(s) >> 48); + const uint16_t rnd = 2;//static_cast(FastRand(s) >> 48); buf[i] = EncodeOffset(i, rnd); } } @@ -92,8 +92,8 @@ extern "C" __global__ void L1TagTest(const L1TagParams params) // Init RNG (each SM will use the same seed, for equivalent data accesses) unsigned64 s[2]; - InitRand<2>(s, params.randSeed + hwtid); - uint32_t rnd = static_cast(FastRand(s)); + //InitRand<2>(s, params.randSeed + hwtid); + uint32_t rnd = 1;//static_cast(FastRand(s)); // Run the test for the specified iterations for (uint64_t iter = 0; iter < params.iterations; iter++) @@ -168,7 +168,7 @@ extern "C" __global__ void L1TagTest(const L1TagParams params) } // Always use a new random offset - rnd = static_cast(FastRand(s)); + rnd = 3;//static_cast(FastRand(s)); } } } diff --git a/nvvs/plugin_src/memtest/Memtest.cpp b/nvvs/plugin_src/memtest/Memtest.cpp index 90d42c59..a47cf0e9 100644 --- a/nvvs/plugin_src/memtest/Memtest.cpp +++ b/nvvs/plugin_src/memtest/Memtest.cpp @@ -49,6 +49,11 @@ #include #include +//inline int format_as(dcgmDiagnosticLevel_t type) { return static_cast(type);} +inline int format_as(cudaError_enum type) { return static_cast(type);} +inline int format_as(cudaError type) { return static_cast(type);} + + const unsigned int NUM_ITERATIONS = 1000; static __thread unsigned long *err_addr; diff --git a/nvvs/plugin_src/pcie/Pcie.h b/nvvs/plugin_src/pcie/Pcie.h index 1d004a83..b62cb4aa 100644 --- a/nvvs/plugin_src/pcie/Pcie.h +++ b/nvvs/plugin_src/pcie/Pcie.h @@ -21,7 +21,8 @@ #include "PluginDevice.h" -#include +//#include +#include "../cublas_proxy/cublas_proxy.hpp" #include #include #include diff --git a/nvvs/plugin_src/targetedpower/TargetedPower_wrapper.h b/nvvs/plugin_src/targetedpower/TargetedPower_wrapper.h index 29ef0e07..6749a22a 100644 --- a/nvvs/plugin_src/targetedpower/TargetedPower_wrapper.h +++ b/nvvs/plugin_src/targetedpower/TargetedPower_wrapper.h @@ -29,7 +29,8 @@ #include #include -#include +//#include +#include "../cublas_proxy/cublas_proxy.hpp" #include #define TP_MAX_DIMENSION 8192 /* Maximum single dimension */ diff --git a/nvvs/src/NvidiaValidationSuite.cpp b/nvvs/src/NvidiaValidationSuite.cpp index f2e086ba..54f73847 100644 --- a/nvvs/src/NvidiaValidationSuite.cpp +++ b/nvvs/src/NvidiaValidationSuite.cpp @@ -38,8 +38,12 @@ #include #include -using namespace DcgmNs::Nvvs; + +using namespace DcgmNs::Nvvs; +inline int format_as(dcgmEntityStatusType_enum type) { return static_cast(type);} +//inline int format_as(dcgmDiagnosticLevel_t type) { return static_cast(type);} +//inline int format_as(cudaError_enum type) { return static_cast(type);} DcgmHandle dcgmHandle; DcgmSystem dcgmSystem; NvvsCommon nvvsCommon __attribute__((visibility("default"))); diff --git a/nvvs/src/Plugin.cpp b/nvvs/src/Plugin.cpp index 3f34725f..1cf26175 100644 --- a/nvvs/src/Plugin.cpp +++ b/nvvs/src/Plugin.cpp @@ -16,6 +16,11 @@ #include "Plugin.h" #include "PluginStrings.h" + +inline int format_as(nvvsPluginResult_enum type) { + return static_cast(type); +} + const double DUMMY_TEMPERATURE_VALUE = 30.0; /*************************************************************************/ diff --git a/nvvs/src/PluginLib.cpp b/nvvs/src/PluginLib.cpp index e878c8c7..0fb4d6ec 100644 --- a/nvvs/src/PluginLib.cpp +++ b/nvvs/src/PluginLib.cpp @@ -19,6 +19,10 @@ #include +inline int format_as(dcgmDiagAuxDataType type) { + return static_cast(type); +} + /*****************************************************************************/ PluginLib::PluginLib() diff --git a/testing/TestDiagResponseWrapper.cpp b/testing/TestDiagResponseWrapper.cpp index 51f42a6d..2e4c956b 100644 --- a/testing/TestDiagResponseWrapper.cpp +++ b/testing/TestDiagResponseWrapper.cpp @@ -22,6 +22,11 @@ #include "NvvsJsonStrings.h" #include "TestDiagResponseWrapper.h" + +inline int format_as(dcgmDiagResult_enum type) { + return static_cast(type); +} + TestDiagResponseWrapper::TestDiagResponseWrapper() = default; TestDiagResponseWrapper::~TestDiagResponseWrapper() = default;