How to enable  DCGM service when I build DCGM debug version from the source code

Hi, I am building the DCGM debug version from source code and it has already been built successfully on a server. For instance, after building, it will generate a executable file ./DCGM/_out/Linux-amd64-debug/bin/dcgmi. The executable file dcgmi can be executed for some simple application, such as ./dcgmi --help, ./dcgmi -v.  But for some more complex application, such as ./dcgmi group --list, it will generated
"Error: unable to establish a connection to the specified host: localhost"
"Error: Unable to connect to host engine. Host engine connection invalid/disconnected."
Previously, I also install the prebuilt version of DCGM on another server, this problem also happened. But when I enter
"sudo systemctl --now enable nvidia-dcgm", then the DCGM service started and this problem can be solved.
But now, when I compile DCGM from source code and run "sudo systemctl --now enable nvidia-dcgm", it will generate:
"Failed to enable unit: Unit file nvidia-dcgm.service does not exist." OR
"Failed to execute operation: No such file or directory".
So please help me, how can I start the DCGM service when I build DCGM debug version from source code?
The GPU environment on server is shown in below.

@ligeweiwu,
You need to start the nv-hostengine process. For your layout that would be sudo ./DCGM/_out/Linux-amd64-debug/bin/nv-hostengine -f host.log --log-level debug.
The nv-hostengine should be run as root, otherwise, some functionality will not be available.
The provided command would start nv-hostengine daemon process that writes debug logs into the host.log file.
If you want to debug the nv-hostengine itself, then it's better to add the -n argument that would prevent the nv-hostengine from demonization.
Alternatively, you could generate .deb/.rpm packages and install them using the package manager, but that's a very inconvenient way for debugging.

@nikkon-dev
It works. Thanks for your help!

@nikkon-dev
Hi, I have another question.
Now I have add the gpu to the Group (Group 2) successfully. And when I enter
"./dcgmi diag -r 1 -g 2"
It gives me an info
"Couldn't parse json: 'WARNING: You must also provide env __NVVS_DBG_FILE=
"
How can I fix it ?
Below is my working environment.
Thanks.
+-------------------+----------------------------------------------------------+
| GROUPS                                                                       |
| 3 groups found.                                                              |
+===================+==========================================================+
| Groups            |                                                          |
| -> 0              |                                                          |
|    -> Group ID    | 0                                                        |
|    -> Group Name  | DCGM_ALL_SUPPORTED_GPUS                                  |
|    -> Entities    | GPU 0, GPU 1, GPU 2                                      |
| -> 1              |                                                          |
|    -> Group ID    | 1                                                        |
|    -> Group Name  | DCGM_ALL_SUPPORTED_NVSWITCHES                            |
|    -> Entities    | None                                                     |
| -> 2              |                                                          |
|    -> Group ID    | 2                                                        |
|    -> Group Name  | GPU_GROUP                                                |
|    -> Entities    | GPU 2                                                    |
+-------------------+----------------------------------------------------------+

@ligeweiwu,
Most likely, the nv-hostengine cannot find where the nvvs binary is located. It tries to find it in the default location where the package manager installs it.
To override that logic, you need to set an environment variable NVVS_BIN_PATH=full path to nvvs location in the _out/Linux-amd64-debug/share/nvidia-validation-suite before running the nv-hostengine process.

@nikkon-dev
Hi, thanks for your help. Now I have another question.
Now, when I enter "sudo ./nv-hostengine -n -f host.log --log-level debug" again, it gives me an error:
"Err: Failed to start DCGM Server: -7
User defined signal 1"
How can I fix it?
Thanks

@ligeweiwu,
-7 stands for DCGM_ST_INIT_ERROR           = -7,  //!< DCGM Init error and it's hard to tell what is wrong without the debug logs (the host.log in your command).

@nikkon-dev
Hi, Below is the snapshot of host.log.
By the way, this error occurs when I enter "export NVVS_BIN_PATH=full path". After that, when I enter "sudo ./nv-hostengine -n -f host.log --log-level debug", this error happens.

Thanks.

@nikkon-dev
Hi, Below is the snapshot of host.log.
By the way, this error occurs when I enter "export NVVS_BIN_PATH=full path". After that, when I enter "sudo ./nv-hostengine -n -f host.log --log-level debug", this error happens.

Thanks.

Hi, this is the content of debug log.
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 1, fieldId 513, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x101f500000002 (eg 1, entityId 2, fieldId 501) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 501, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x101fd00000002 (eg 1, entityId 2, fieldId 509) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 509, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x101fe00000002 (eg 1, entityId 2, fieldId 510) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 510, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x101ff00000002 (eg 1, entityId 2, fieldId 511) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 511, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x1020000000002 (eg 1, entityId 2, fieldId 512) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 512, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding WatchInfo on entityKey 0x1020100000002 (eg 1, entityId 2, fieldId 513) [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2155] [DcgmCacheManager::GetEntityWatchInfo]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Adding new watcher type 1, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2901] [DcgmCacheManager::AddOrUpdateWatcher]
2022-12-02 10:41:26.277 DEBUG [83727:83727] UpdateWatchFromWatchers minMonitorFreqUsec<PHONE_NUMBER>, minMaxAgeUsec<PHONE_NUMBER>0, hsw 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2948] [DcgmCacheManager::UpdateWatchFromWatchers]
2022-12-02 10:41:26.277 DEBUG [83727:83727] AddFieldWatch eg 1, eid 2, fieldId 513, mfu<PHONE_NUMBER>, msa 14400, mka 4, sfu 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:3079] [DcgmCacheManager::AddEntityFieldWatch]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Skipping waitForUpdate since the cache manager thread is not running yet. [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2394] [DcgmCacheManager::UpdateAllFields]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Added field group id 3, name DCGM_INTERNAL_JOB, connectionId 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmFieldGroup.cpp:172] [DcgmFieldGroupManager::AddFieldGroup]
2022-12-02 10:41:26.277 INFO  [83727:83727] Created thread named "cache_mgr_main" ID<PHONE_NUMBER> DcgmThread ptr 0x0xe95a10 [/workspaces/HGDCGM/common/DcgmThread/DcgmThread.cpp:110] [DcgmThread::Start]
2022-12-02 10:41:26.277 DEBUG [83727:83727] Skipping waitForUpdate since the cache manager thread is not running yet. [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2394] [DcgmCacheManager::UpdateAllFields]
2022-12-02 10:41:26.278 DEBUG [83727:83727] dcgmStartEmbedded(): Embedded host engine started [/workspaces/HGDCGM/dcgmlib/src/DcgmApi.cpp:4826] [{anonymous}::StartEmbeddedV2]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Thread handle<PHONE_NUMBER> running [/workspaces/HGDCGM/common/DcgmThread/DcgmThread.cpp:299] [DcgmThread::RunInternal]
2022-12-02 10:41:26.278 DEBUG [83727:83727] Entering dcgmEngineRun(unsigned short portNumber, char const *socketPath, unsigned int isConnectionTCP) (5555 <IP_ADDRESS> 1) [/workspaces/HGDCGM/dcgmlib/entry_point.h:73] [dcgmEngineRun]
2022-12-02 10:41:26.278 INFO  [83727:83732] Cache manager update thread starting [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:6053] [DcgmCacheManager::run]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Preparing to update watchInfo 0xeaf500, eg 1, eid 1, fieldId 512 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:5278] [DcgmCacheManager::ActuallyUpdateAllFields]
2022-12-02 10:41:26.278 INFO  [83727:83727] Created thread named "dcgm_ipc" ID<PHONE_NUMBER> DcgmThread ptr 0x0xe94610 [/workspaces/HGDCGM/common/DcgmThread/DcgmThread.cpp:110] [DcgmThread::Start]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Checking status for gpu 1 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2275] [DcgmCacheManager::GetGpuStatus]
2022-12-02 10:41:26.278 DEBUG [83727:83733] Thread handle<PHONE_NUMBER> running [/workspaces/HGDCGM/common/DcgmThread/DcgmThread.cpp:299] [DcgmThread::RunInternal]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Appended entity blob eg 1, eid 1, fieldId 512, ts<PHONE_NUMBER>278497, valueSize 2048, cached 1, buffered 0 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:6452] [DcgmCacheManager::AppendEntityBlob]
2022-12-02 10:41:26.278 ERROR [83727:83733] bind failed. port 5555, address <IP_ADDRESS>, errno 98 [/workspaces/HGDCGM/common/transport/DcgmIpc.cpp:326] [DcgmIpc::InitTCPListenerSocket]
2022-12-02 10:41:26.278 ERROR [83727:83733] InitTCPListenerSocket() returned Generic unspecified error [/workspaces/HGDCGM/common/transport/DcgmIpc.cpp:195] [DcgmIpc::run]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Preparing to update watchInfo 0xeaf360, eg 1, eid 1, fieldId 510 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:5278] [DcgmCacheManager::ActuallyUpdateAllFields]
2022-12-02 10:41:26.278 ERROR [83727:83727] initFuture returned Generic unspecified error [/workspaces/HGDCGM/common/transport/DcgmIpc.cpp:131] [DcgmIpc::Init]
2022-12-02 10:41:26.278 DEBUG [83727:83732] Checking status for gpu 1 [/workspaces/HGDCGM/dcgmlib/src/DcgmCacheManager.cpp:2275] [DcgmCacheManager::GetGpuStatus]
2022-12-02 10:41:26.278 ERROR [83727:83727] Got error Generic unspecified error from m_dcgmIpc.Init [/workspaces/HGDCGM/dcgmlib/src/DcgmHostEngineHandler.cpp:3767] [DcgmHostEngineHandler::RunServer]
2022-12-02 10:41:26.278 DEBUG [83727:83733] Thread id<PHONE_NUMBER> stopped [/workspaces/HGDCGM/common/DcgmThread/DcgmThread.cpp:308] [DcgmThread::RunInternal]
2022-12-02 10:41:26.278 DEBUG [83727:83727] Returning -7 [/workspaces/HGDCGM/dcgmlib/entry_point.h:73] [dcgmEngineRun]
Thanks.

@ligeweiwu,
That's an easy one - you either already have nv-hostengine process running or something else is listening on the 5555 TCP port.
2022-12-02 10:41:26.278 ERROR [83727:83733] bind failed. port 5555, address <IP_ADDRESS>, errno 98
Normally, when nv-hostengine runs it creates a PID file that allows it to understand later if another instance is already running. That may be not true for debug builds.

@nikkon-dev
Thanks for your help. This error has been solved.
But when I set the environment variable
"export NVVS_BIN_PATH=XXX/GDCGM/_out/Linux-amd64-debug/share/nvidia-validation-suite/" ,and then start the nv-hostengine  service. After that, I run
"./dcgmi diag -r 1 -g 2" (the gpu group has already been created).
It still gives me an message:
Couldn't parse json: 'WARNING: You must also provide env __NVVS_DBG_FILE='
By the way, when I install the deb package, this error would not happen. So is there other procedure that I missed?
Thanks

@ligeweiwu,
In the debug nv-hostengine logs, look for the NVVS-related lines.
Also, there may be nvvs.log file next to the nvvs binary.

Hi, this is the NVVS-related lines.
2022-12-01 22:01:31.184 DEBUG [1909:1911] [[Diag]] Unknown subcommand: 1 [/workspaces/HGDCGM/modules/diag/DcgmModuleDiag.cpp:144] [DcgmModuleDiag::ProcessCoreMessage]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] External command stdout: WARNING: You must also provide env __NVVS_DBG_FILE=	 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:676] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] External command stderr: {	   "DCGM GPU Diagnostic" : {	      "runtime_error" : "Unable to get the driver version: Host engine connection invalid/disconnected. Couldn't succeed despite 0 retries.",	      "version" : "440.37"	   }	}		 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:677] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] The external command '/usr/share/nvidia-validation-suite/nvvs' returned a non-zero exit code: 1 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:705] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] Failed to parse NVVS output: WARNING: You must also provide env __NVVS_DBG_FILE=	 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:1145] [DcgmDiagManager::ValidateNvvsOutput]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] Error happened during JSON parsing of NVVS output: The GPU Diagnostic returned Json that cannot be parsed. [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:885] [DcgmDiagManager::RunDiag]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] NVVS stderr:
{	   "DCGM GPU Diagnostic" : {	      "runtime_error" : "Unable to get the driver version: Host engine connection invalid/disconnected. Couldn't succeed despite 0 retries.",	      "version" : "440.37"	   }	}		 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:886] [DcgmDiagManager::RunDiag]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] RunDiagAndAction returned -40 [/workspaces/HGDCGM/modules/diag/DcgmModuleDiag.cpp:120] [DcgmModuleDiag::ProcessRun_v6]
2022-12-01 22:01:31.195 DEBUG [1909:2000] Sending message to 17 [/workspaces/HGDCGM/common/transport/DcgmIpc.cpp:1198] [DcgmIpc::SendMessageImpl]
I see there is a message about
"The external command '/usr/share/nvidia-validation-suite/nvvs' returned a non-zero exit code: 1 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:705] [DcgmDiagManager::PerformExternalCommand]"
That means it use the location "/usr/share/nvidia-validation-suite/nvvs",
But my workspace is not in /usr/share/nvidia-validation-suite/nvvs, and I also set the env variable NVVS_BIN_PATH to my workspace
(export NVVS_BIN_PATH=XXX/GDCGM/_out/Linux-amd64-debug/share/nvidia-validation-suite/)
Is there other env variable that I should be set ? (e.g.  __NVVS_DBG_FILE)
Thanks.

@nikkon-dev
Hi, this is the NVVS-related lines.
2022-12-01 22:01:31.184 DEBUG [1909:1911] [[Diag]] Unknown subcommand: 1 [/workspaces/HGDCGM/modules/diag/DcgmModuleDiag.cpp:144] [DcgmModuleDiag::ProcessCoreMessage]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] External command stdout: WARNING: You must also provide env __NVVS_DBG_FILE= [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:676] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] External command stderr: { "DCGM GPU Diagnostic" : { "runtime_error" : "Unable to get the driver version: Host engine connection invalid/disconnected. Couldn't succeed despite 0 retries.", "version" : "440.37" } } [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:677] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 DEBUG [1909:1910] [[Diag]] The external command '/usr/share/nvidia-validation-suite/nvvs' returned a non-zero exit code: 1 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:705] [DcgmDiagManager::PerformExternalCommand]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] Failed to parse NVVS output: WARNING: You must also provide env __NVVS_DBG_FILE= [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:1145] [DcgmDiagManager::ValidateNvvsOutput]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] Error happened during JSON parsing of NVVS output: The GPU Diagnostic returned Json that cannot be parsed. [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:885] [DcgmDiagManager::RunDiag]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] NVVS stderr:
{ "DCGM GPU Diagnostic" : { "runtime_error" : "Unable to get the driver version: Host engine connection invalid/disconnected. Couldn't succeed despite 0 retries.", "version" : "440.37" } } [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:886] [DcgmDiagManager::RunDiag]
2022-12-01 22:01:31.195 ERROR [1909:1910] [[Diag]] RunDiagAndAction returned -40 [/workspaces/HGDCGM/modules/diag/DcgmModuleDiag.cpp:120] [DcgmModuleDiag::ProcessRun_v6]
2022-12-01 22:01:31.195 DEBUG [1909:2000] Sending message to 17 [/workspaces/HGDCGM/common/transport/DcgmIpc.cpp:1198] [DcgmIpc::SendMessageImpl]
I see there is a message about
"The external command '/usr/share/nvidia-validation-suite/nvvs' returned a non-zero exit code: 1 [/workspaces/HGDCGM/modules/diag/DcgmDiagManager.cpp:705] [DcgmDiagManager::PerformExternalCommand]"
That means it use the location "/usr/share/nvidia-validation-suite/nvvs",
But my workspace is not in /usr/share/nvidia-validation-suite/nvvs, and I also set the env variable NVVS_BIN_PATH to my workspace
(export NVVS_BIN_PATH=XXX/GDCGM/_out/Linux-amd64-debug/share/nvidia-validation-suite/)
Is there other env variable that I should be set ? (e.g. __NVVS_DBG_FILE)
Thanks.

Do you set the NVVS_BIN_PATH for the root user or for your current user?
If you set export NVVS_BIN_PATH= and then sudo ./nv-hostengine..., the env variable is not set for the root user that runs the nv-hostengine.
Logfile should also mention the NVVS_BIN_PATH variable and its value.

@nikkon-dev
Hi nikkon,
(1): I do not find NVVS_BIN_PATH in the logfile.
(2): I set export NVVS_BIN_PATH= and then sudo ./nv-hostengine...
and when I set ./nv-hostengine...    it works fine.
Thanks for you help.

17:02@nikkon-dev
Hi nikkon,
Sorry to bother you again. But I still have some problem on debugging version of dcgm.
Now I can run Diag test on corresponding gpu group. But when I use gdb to go into the source code, it can not find the source code correctly.
For example:

Build the debug version:
./build.sh -d -c
After that, it generate _out/Linux-amd64-debug/bin, and the corresponding bin file like dcgmi is in it.
Run the test
./dcgmi diag -r 1 -g 2. It works fine. Every thing is fine.
Using gdb to go into the source code
gdb --args ./dcgmi diag -r 1 -g 2
And I want to add the breakpoint at Diag::RunDiagOnce, so I
b Diag::RunDiagOnce
And then run, But the program will never run into the break point. And when I add some print info and rebuild it again, it can show the new printinfo. But it never reach into the breakpoint (Diag::RunDiagOnce ).
So which step should I still miss? or I gdb into a wrong executable file (maybe not dcgmi)?
Thanks

@nikkon-dev
Another Examle, if I in GDB input:
b CommandLineParser.cpp:99 //Entry method into this class for a given command line provided by main()
The GDB will give a feedback:
Breakpoint at 0x44b61e: file /opt/cross/x86_64-linux-gnu/include/tclap/CommandLineParser.cpp, line 165.
The gdb feedback breakpoint is not the point that I set.
So i think the debug symbol may be crashed dcgmi?  And is there anything else that I should amend to the command "./build.sh -d -c" ?
Thanks

@nikkon-dev
Hi nikkon, i try it but it still have some problem.
(1): my workspace is:
/mnt/ssd/liuzhenli.lzl/DCGM
(2):
The execute path is:
/mnt/ssd/liuzhenli.lzl/DCGM/_out/Linux-amd64-debug/bin
(3):
I add .gdbinit file in /mnt/ssd/liuzhenli.lzl/DCGM/_out/Linux-amd64-debug/bin, and the content is:
directory /mnt/ssd/liuzhenli.lzl/DCGM
set substitute-path /workspaces/DCGM /mnt/ssd/liuzhenli.lzl/DCGM
(4):
Now I just want to test the commandLineParser function, e.g. in CommandLineParser.cpp:
1307: dcgmReturn_t CommandLineParser::ProcessDiagCommandLine(int argc, char const *const *argv)
1308:{
1309:    // Check for stop diag request
1310:    const char *value = std::getenv(STOP_DIAG_ENV_VARIABLE_NAME);
1311:   if (value != nullptr)
so I do:
4.1): gdb --args ./dcgmi diag -r 1 -g 2 (i think CommandLineParser is controlled by dcgmi, Is right ??)
4.2): b CommandLineParser.cpp:1310
And then run in gdb
(5):
The gdb feedback is still:
Breakpoint 1 at 0x408399: file /workspaces/DCGM/dcgmi/main_dcgmi.cpp, line 3419
(6):
I also see build.sh in  DCGM repo, and I see docker start command is:
docker run  --rm -u "$(id -u)":"$(id -g)"
${DOCKER_ARGS:-}
-v "${DIR}":"${REMOTE_DIR}"
And I print ${DIR}, it is actually:/mnt/ssd/liuzhenli.lzl/DCGM. And ${REMOTE_DIR} is: /workspaces/DCGM
So i think I add set substitute-path correctly in .gdbinit file
So is there anything that I do wrong?
Sorry to bother you.
Thanks

It’s /workspaces/dcgm not capital letters. The path is case sensitive.

@nikkon-dev
Hi nikkon,
Now this is the content of my .gdbinit File in the path (/mnt/ssd/liuzhenli.lzl/DCGM/_out/Linux-amd64-debug/bin)
directory /mnt/ssd/liuzhenli.lzl/DCGM
set substitute-path /workspaces/dcgm /mnt/ssd/liuzhenli.lzl/DCGM (I have change DCGM to dcgm for /workspaces)
However, when I run gdb (gdb --args ./dcgmi diag -r 1 -g 2, b CommandLineParser.cpp:1310), It sill gives me the feed back:
"Breakpoint 1 at 0x408389: file /workspaces/DCGM/dcgmi/main_dcgmi.cpp, line 3419."
May be there are some problem for gdb to go  into source code of DCGM version?
By the way, my gdb version is:
GNU gdb (Ubuntu 8.2-0ubuntu1~16.04.1) 8.2
Thanks for your help.

You need to update the gdb to a version that understands Dwarf5 debug info format. DCGM is built with GCC11 and uses Dwarf5 by default. You need GDB 10 or newer to be able to read that debug info.

@nikkon-dev
Hi nikkon, thanks for your help. I have another question.
As you said,
"The provided command would start nv-hostengine daemon process that writes debug logs into the host.log file."
For instance, if I run
./dcgmi diag -r 3 -g 2
I see the content of host.log file, it contains the debug log of many functions (e.g. function defined in DcgmCacheManager.cpp).
In other words, Is possible to say that host.log file contains almost all of function, which is utilized in "./dcgmi diag -r 3 -g 2" ?
Thanks.

The host.log would contain only the nv-hostengine part. The real work is done by nvvs binary with its own log. For debugging needs, you could run nvvs directly.

@nikkon-dev
Hi nikkon
The path is dcgmi->nv-hostengine->nvvs.
In other words, nvvs binary executes the diagnostic test on the corresponding GPU,  and nv-hostengine can use  NVML function to monitor the performance metrics of GPU (e.g. power, Temperature, ecc...).
Is my understanding right?
Thanks.

That's correct.

@nikkon-dev
Hi nikkon
I have another question. Does DCGM support cuda-12 now? When I update cuda driver and run the previous workflow again, it gives me an error:
_out/Linux-amd64-debug/share/nvidia-validation-suite/nvvs.log:78:2022-12-12 15:56:40.014 ERROR [29094:29094] Detected unsupported Cuda version: 12.0 [/workspaces/DCGM/nvvs/src/TestFramework.cpp:243] [TestFramework::GetPluginDirExtension]
Thanks

Cuda-12 will be supported in >=3.1.5 version. We are going to release it at
the beginning of this week.
On Mon, Dec 12, 2022 at 12:26 AM ligeweiwu @.***> wrote:

@nikkon-dev https://github.com/nikkon-dev
Hi nikkon
I have another question. Does DCGM support cuda-12 now? When I update cuda
driver and run the previous workflow again, it gives me an error:
_out/Linux-amd64-debug/share/nvidia-validation-suite/nvvs.log:78:2022-12-12
15:56:40.014 ERROR [29094:29094] Detected unsupported Cuda version: 12.0
[/workspaces/DCGM/nvvs/src/TestFramework.cpp:243]
[TestFramework::GetPluginDirExtension]
Thanks
—
Reply to this email directly, view it on GitHub
https://github.com/NVIDIA/DCGM/issues/57#issuecomment-1346080376, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHPPZKHVQRI6TDDOVVTCVTWM3ORXANCNFSM6AAAAAASQJ7CUM
.
You are receiving this because you were mentioned.Message ID:
@.***>

@nikkon-dev
Hello nikkon
Now I am debugging "dcgmi diag -r 1".
As you said before, I can run nvvs binary directly for debugging purpose. However,  when I run ./nvvs -h. I could not find the same test info as "dcgmi diag -r 1".
Could you tell me how can I run nvvs directly to get the same effect as I run "dcgmi diag -r 1"?
Thank you very much.

That's --specifiedtest short
r 1 - short
r 2 - long
r 3 - xlong

@nikkon-dev
Thanks for your help. It works.

@nikkon-dev
Hello nikkon
I have another issue for debugging.
Now I am running the command
"./nvvs --specifiedtest pcie"
I found that GDB can follow the source code, which is located in nvvs folder.
But for the source code in pcie folder, (e.g. PcieWrapper.cpp), gdb can not go into it.
Let me give a more specific example.
In PluginLib.cpp, it has a callback function  "m_runTestCB(timeout, numParameters, parms, m_userData);"  GDB can go into the source code of PluginLib.cpp. But when I enter "s" for "m_runTestCB", I can not follow the source code of RunTest, which is defined in PcieWrapper.cpp. I also try to add other breakpoints for source code of pcie, but they do not work as well.
Could you tell me how to fix it?
Thanks
Could you tell me the reason for it?

In gdb, you need to set solib-search-path to plugins/cudaXX directory, where XX is your driver's Cuda version: 10, 11 or 12

@nikkon-dev
Hi nikkon
I have another question for running power test using nvvs directly.
When I input
./nvvs --specifiedtest targeted_power or ./nvvs --specifiedtest "targeted power"
It gives me an error message
"Error: requested test "targeted_power" was not found among possible test choices."
Could you tell me how to fix it?
By the way for pcie test, I can run ./nvvs --specifiedtest pcie successfully.
Thanks.

@nikkon-dev
Hi nikkon
I am building the DCGM source code and using nvvs/dcgmi to perform the diagnostic test. I see all plugintest and they are all in the format of .so. .But when I want to perform the "memory bandwidth" diagnostic, they give me an error:
./dcgmi diag -r "memory bandwidth" -g 2
Error: requested test "memory bandwidth" was not found among possible test choices.
In my case, all plugin.so are in the location of
/username/DCGM/_out/Linux-amd64-debug/share/nvidia-validation-suite/plugins/cuda11, and there is no name of "memory bandwidth". And I also see the source code, actually i think it doesn't have the option name "memory bandwidth". It only has "memtest".
So please tell me how can I run "memory bandwith" using DCGM source code?
By the way, the memtest is OK ("./dcgmi diag -r memtest -g 2" works fine, and I also see the corresponding libMemtest.so in plugins/cuda11, and the source code has the option "memtest").
Thanks


gccgo: carriage returns in raw strings are not discarded

// runoutput

package main
import "fmt"
func main() {
    fmt.Println("package main\nfunc main() { if `a\rb\r\nc` != \"ab\\nc\" { panic(42) }}")
}

According to the spec, http://tip.golang.org/ref/spec#String_literals,
The value of a raw string literal is the string composed of the uninterpreted (implicitly UTF-8-encoded) characters between the quotes; in particular, backslashes have no special meaning and the string may contain newlines. Carriage return characters ('\r') inside raw string literals are discarded from the raw string value.
Both gc and go/types conform to the spec.

Fixed on tip by http://golang.org/cl/221660043 .


How to add a new customized pipeline template in the pipeline panel?

Hi,
I have created a pipeline for application publishing in the pipeline panel, and I want to make this pipeline into a template，so that users can choose the pipeline  template and publish their applications based on the parameters entered by the user. by default , there is a  pipeline template which name is "Observability Template", But I found there is no way to create my customized pipeline template whether using Vela cli or on VelaUX.
Is this a bug or is it not supported in terms of functionality？
VelaCore verison: 1.8.2
velaUX: 1.8.1

I found that the default pipeline template "Observability Template" is hardcoded in velaUX.


Settings plugins should be visible to other included builds

If an included build defines a settings plugin, that plugin should be visible to builds included afterwards.

I rebased this to include to include the latest fixes of 910c710dcf1. The solution in this PR breaks CompositeBuildIsolationIntegrationTest again.

Done for 7.0. See description of #15317 for details.

@jjohannes is it compatible with buildSrc or it has to be a different included build?

For buildSrc, it should already work in 6.7.
But buildSrc only provide build logic for its main build and cannot be shared with other builds. So there is only one settings file in which you can apply the plugin.

Sorry I was mistaken. It actually does not work with buildSrc. And I think it probably never will. (see e.g. #11090 for context)
You can either use an additional included build (which you can then also use in buildSrc). Or switch from buildSrc to included builds in general.


网络爬虫核心技术教程，点此获取☞

@gnehsuy,
Is this issue related to TensorFlow?
If it is, could you please edit the details and fill in the issue template?

YELVERTON


Examples benchmarking problem in RaspberryPi 3B+

Output of 'strings libarm_compute.so | grep arm_compute_version':
arm_compute_version=v0.0-unreleased Build options: {'arch': 'arm64-v8a', 'debug': '0', 'benchmark': '1', 'benchmark_tests': '1', 'opencl': '0', 'neon': '1', 'cppthreads': '1', 'Werror': '0'} Git hash=b'05e5644715c678773abaf180222a33959ee0dadb'
Platform:
RaspberryPi 3B+
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               4
Model name:          Cortex-A53
Stepping:            r0p4
CPU max MHz:         1400.0000
CPU min MHz:         600.0000
BogoMIPS:            38.40
Flags:               fp asimd evtstrm crc32 cpuid
Operating System:
https://github.com/sakaki-/gentoo-on-rpi3-64bit

Problem description:
I am using following build command.
scons arch=arm64-v8a benchmark=1 benchmark_tests=1 opencl=0 neon=1 cppthreads=1 benchmark_tests=1 -j3 Werror=0
export LD_LIBRARY_PATH=build/

Benchmarking alexnet
./build/tests/benchmark_graph_alexnet --pretty-file=alexnet.txt --iterations=20 --example_args="--threads=1" --instruments="wall_clock_timer_ms"

Version = arm_compute_version=v0.0-unreleased Build options: {'arch': 'arm64-v8a', 'debug': '0', 'benchmark': '1', 'benchmark_tests': '1', 'opencl': '           0', 'neon': '1', 'cppthreads': '1', 'Werror': '0'} Git hash=b'05e5644715c678773abaf180222a33959ee0dadb'
CommandLine = ./build/tests/benchmark_graph_alexnet --pretty-file=alexnet.txt --iterations=20 --example_ar           gs=--threads=4 --instruments=wall_clock_timer_ms
Iterations = 20
Running [0] 'Examples/benchmark_graph_alexnet'
Threads : 4
Target : NEON
Data type : F32
Data layout : NHWC
Tuner enabled? : false
Tuner file :
Fast math enabled? : false

  Wall clock/Wall clock time:    AVG=173.9102 ms, STDDEV=0.29 %, MIN=173.0490 ms, MAX=175.0760 ms, MEDIAN=174.0070 ms
Executed 1 test(s) (1 passed, 0 expected failures, 0 failed, 0 crashed, 0 disabled) in 8 second(s)

And here are more benchmark results.
squeezenet_v1_1:      AVG=36.8231 ms, STDDEV=15.15 %, MIN=20.9510 ms, MAX=39.5240 ms, MEDIAN=38.8860 ms
alexnet:              AVG=173.9102 ms, STDDEV=0.29 %, MIN=173.0490 ms, MAX=175.0760 ms, MEDIAN=174.0070 ms
vgg16:                AVG=1107.0216 ms, STDDEV=2.69 %, MIN=1051.7200 ms, MAX=1156.0880 ms, MEDIAN=1110.2560 ms
mobilenet_v2:         AVG=90.0225 ms, STDDEV=13.61 %, MIN=49.3990 ms, MAX=95.8760 ms, MEDIAN=94.8530 ms
resnet50:             AVG=221.2754 ms, STDDEV=7.51 %, MIN=163.8950 ms, MAX=236.7930 ms, MEDIAN=222.1410 ms
googlenet:            AVG=92.1642 ms, STDDEV=0.67 %, MIN=91.3500 ms, MAX=94.0260 ms, MEDIAN=92.1320 ms

The runtime results are way faster and do not seems to be real.
Any idea please?
Thanks.
Deepak

I'm not sure I understand the problem: which ones don't look realistic to you ?

Hello @AnthonyARM,
I am confused about run times. They are way faster. For example, does googlenet runs in 92.16 ms in raspberrypi3b+?
Thanks

@AnthonyARM Are there any accuracy tests for these models to confirm that the reported benchmark numbers are correct?

@GeorgeARM Thanks - do you have any software release accuracy tests that you could release as it would save a lot of time in porting and testing the inference engine on different hardware platforms. We could write our own accuracy tests however it would be a lot cleaner that you provided an accuracy test for each network and developers could easily check a port to a new platform (device + CPU + OS + compiler etc) is working as expected. Maybe if you have it for only one of the models it would still be useful.

@bonseyes-admin : You don't need to write anything, you can do the validation directly with the graph examples, something like:
LD_LIBRARY_PATH=lib ./bin/graph_alexnet --target=CL --layout=NHWC --type=F32 --threads=4 --validation-range='16666,24998' --validation-file='val.txt' --validation-path='/path/to/test/images/' --data='/path/to/weights/'

Where val.txt is a list of images with expected labels:
ILSVRC2012_val_00000001.JPEG 65
ILSVRC2012_val_00000002.JPEG 970
ILSVRC2012_val_00000003.JPEG 230
ILSVRC2012_val_00000004.JPEG 809
ILSVRC2012_val_00000005.JPEG 516
ILSVRC2012_val_00000006.JPEG 57
ILSVRC2012_val_00000007.JPEG 334
ILSVRC2012_val_00000008.JPEG 415
ILSVRC2012_val_00000009.JPEG 674
ILSVRC2012_val_00000010.JPEG 332

--validation-range is if you've got a farm of devices and want to parallelise the runs.
Hope this helps.

@AnthonyARM Thanks. Sorry by accuracy tests I was referring to the models, test images, and expected outputs as effectively there is little software needed to test the networks. Even if it was for one model, it would be useful to confirm compilation on a new platform looked correct.
You might want to consider releasing your ImageNet models so that developers don't need to try to build up a repository themselves - it would save a lot of time.

@AnthonyARM I think the biggest stumbling block for validators would be finding out which weights to use with --data='/path/to/weights/'. For example, where can they download the GoogLeNet weights from?

@bonseyes-admin
I believe we've got exactly what you need for MobileNets-v1! We adapted the corresponding ArmCL graph example in early 2018 to make a reproducible and reusable artifact for the 1st ACM ReQuEST tournament at ASPLOS'18. The complete Collective Knowledge workflow is available either on GitHub or in the ACM Digital Library.
Furthermore, we have extended this artifact to support TensorFlow (Python), TensorFlow (C++) and TFLite, and contributed these TF extensions to the MLPerf Inference benchmark as the reference MobileNets-v1/v2 code.
Finally, we have provided an interactive dashboard with sample data publicly available for Linaro HiKey960, Firefly RK3399, Samsung Galaxy S8 and Huawei Mate 10 Pro. You can read more about the dashboard here.
Hope this helps. Please do not hesitate to ask if you have any questions or comments.

The Graph API was only added as a stop gap measure while ArmNN was being developed, we're not planning on distributing weights and test images in yet another format when there are already so many existing models out there.

@AnthonyARM
I agree, and I don't mean that you should. You have enough on your plate with supporting and optimising the library!
I'm just saying that it's indeed possible for the community to build upon your examples and provide complete workflows, as our work on the ReQuEST artifact shows.
Look forward to future collaboration!

@AnthonyARM
You need to make is easier for your developer community to test and benchmark your inference engine on different platforms not harder.
Our project (https://www.bonseyes.com/outcomes/) has already contributed Winograd convolution optimization to ARMCL (1.4x speed-up improvements of MobileNetV2) and there are more improvements that we can contribute however the testing framework of your library is limiting our ability to contribute.
Obviously releasing your regression tests would help rather than having the community build their own. However I am not referring to building a model zoo (https://github.com/onnx/models) where as you point out no body needs another zoo. However a regression test suite to ensure the combination of Device + OS + Drivers + Compiler has not introduced a accuracy regression is missing in your framework. I think it's unreasonable to expect embedded developers to know the intricacies and nuances of model training and figure out how to interpret the output your API. You should be targetting a wider range of developers, those who "don't know" the difference in padding between a Caffe and Tensorflow models and why the results will different given the "same" model architecture. BTW this is currently a bug in your current release.
Currently we are blocked on the 64bit issue for a publication we are due to publish this month under our H2020 project where we can't get reliable numbers on your library on ARM64 and hence currently your library is 25% slower versus competition (NCNN) on average.
Thanks to consider releasing your internal regression tests as it would allow you to improve your project faster and accept more community contributions for improvement. What we need are:

The model weight files
The val.txt file
The image files
The expected Top-1 and Top-5 accuracy for each test

Thanks,
Tim

@GeorgeARM
The fundamental issue is that without debugging in depth and a high degree of knowledge of the neural networks themselves it's impossible to know if the benchmark outputs from your benchmark program are accurate and reliable on a given platform, OS, compiler, etc and / or if there is a compile / run error on our side in execution of the program. We have no way to debug and verify.
For example compiling the latest Master of https://review.mlplatform.org/ml/ComputeLibrary on Linux GenToo 64bit with GCC 8.2
scons arch=arm64-v8a benchmark=1 benchmark_tests=1 opencl=0 neon=1 cppthreads=1 benchmark_tests=1 -j3 Werror=0
And then running your benchmark program does not fail however the results can not be verified by the developer.
./build/tests/${name} --pretty-file=benchmark_results/nthreads1/${name}.txt --iterations=20 --example_args="--threads=1" --instruments="wall_clock_timer_ms"
The output being:

Attached our the JSON logs with --instruments=wall_clock_timer_ms,scheduler_timer_ms --json-file=log.txt
The results for ResNet50 on an A53 at 1400MHz according to your program are:
ARMCL GenToo 64bit OS + GCC 8.2
1 thread: 141ms
2 thread: 160ms
4 thread: 200ms
The results reported from the developer are "correct". To me it looks like there is a clear problem.
The fundamental issue here is not our specific issue - it is that a developer without deep knowledge of how fast a certain network should run has no way to determine if your program is producing reliable and accurate results - or if there is an error made by the developer in compiling and running the software.
As a sanity check, we ran the exact same compilation and benchmarking on RPi3B+ 32bit OS and the numbers look reasonable.
ARMCL GenToo 32bit OS + GCC 8.2
1 thread: 2072ms
2 thread: 1165ms
4 thread: 834ms
Hence you can see clearly from the log files that the 64bit version isn't running the entire ResNet50 network for some reason.
However the fundamental issue remains - how do you ensure the output from your benchmark program is reliable for a developer who doesn't know the details of the networks he is benchmarking? Or is your target audience of the library towards developers who know the details of each network benchmarked and can report issues on a network level?
Hence my issue and solution remains the same: you need to provide accuracy regressions and release your internal regression tests. I'm pretty sure you won't release code to Google unless it passes accuracy regressions on a set of weights and test images and these tests being released would be the benefit of the library and the entire developer community to make contributions back to the project.
log_resnet50_rpib_64bit.txt
log_resnet50_rpi3b_32bit.txt

I understand what you're asking, and I understand our graph examples might not be reliable, however as explained before: for validation of layers in isolation you have our arm_compute_validation test suites, if you want system tests (i.e entire networks), then I believe these should be provided by the official graph level API which in our case is ArmNN / AndroidNN. (And it should be able to load and run networks coming from other frameworks and therefore wouldn't require the creation of a new zoo).
I'm not saying they currently provide these kind of suites, I'm just saying I believe it would be a better place for system level validation.
If it was simple to release the weights and images we would do it, unfortunately from a legal point of view it's far from being straight forward.
In the meantime George is going to try to reproduce the issue internally and we'll update this thread.

@AnthonyARM
Yes we've looked at the system level validation approach - however you quickly get pushed down the path of only device and operating specific support of the higher level library i.e Android.
It isn't really maintainable solution for broader usage of ARMCL beyond a back-end for ArmNN. Then you have a whole discussion on a viability of ArmNN itself re the explosion of OS API's in the deep learning stack on mobile.
The nice thing about ArmCL is you can run it anywhere and provides a good ARM CPU implementation independent of the OS (you only need a standard ARM core) where you don't care how the model is loaded and dispatched. Then you have the issue of reporting bugs. Is the issue in ArmNN or in ARMCL? It depends on the developer you ask.
However I can see the legal constrains however maybe you can publish some guides on how to use the public API for testing an accuracy of ARMCL and explain how a developer would generate those files and an expected output Top-1 and Top-5 accuracy of one "example" ImageNet model. From that I think things can be figured out if you can't get this past legal.
We can provide an example Caffe model for ImageNet if you like.
Thanks.

@bonseyes-admin
Are you specifically after an example of using Caffe weights? The MobileNets implementation I shared above loads weights converted from TensorFlow. It's allowed us, for example, to detect some discrepancies between ArmCL and TensorFlow.

Hello @bonseyes-admin,
I had a look in the issue and I can reproduce it.
I managed to workaround the issue as it look to be a GCC issue most like and now results look sensible.
Will notify you once a patch is uploaded in the public server for review.
Hope this helps.

Hello @bonseyes-admin,
Created this patch https://review.mlplatform.org/#/c/ml/ComputeLibrary/+/390/
Can you check if this solves any reliability issues that you have?

Hi @GeorgeARM
Thanks. We have applied the patch and the results look more reasonable. We will look at making an accuracy regression test to confirm the issue is resolved.

log_resnet50_patch390.txt
Thanks,
Tim

Closing issue as problem has been resolved.
Reopen if needed


docs: fix typo

Good catch. I actually thought I had fixed that one earlier while I was making other tweaks, but I must have forgotten somewhere along the way. Thanks!


provide the trained models used in the paper (or similar trained models)

@joelvarunvasanth could you create a new folder in this repo and provide the trained MARL and SARL models corresponding to the paper, together with the data (and possibly scripts) used to generate the figures in the paper? :) This way, we fulfill all the "data accessibility" requirements anybody can ever asked about :) . I.e. something similar to what I had done a few years ago for: https://github.com/jerabaul29/Cylinder2DFlowControlDRL/tree/master/Cylinder2DFlowControlWithRL/ANN_controlled_flow_singlerun/best_model . The model and csv dumps should be small enough that it should be no issue to commit and put here?


How to use Vuex with this template...?

Hey there.
I'm trying to get Vuex working with this starter template - with quite limited success. Is there a specific config change needed to the prod build - for vuex to function normally online?
Basically, when run locally, vue-devtools detects the vuex store just fine. But when I build and deploy (say, using simple: $ surge dist/) - the online version displays: "No Vuex store detected". Even though all store based logic, and other vue component inspection still works just fine.
working locally:

not working online:

So to reproduce this bug:

create project: (basic project with vue-router && airbnb eslinting)
$ vue init webpack test-vue-vuex
install vuex as a depdency:
$ yarn add vuex
make /src/main.js the following:

import Vue from 'vue';
import Vuex from 'vuex';

import App from './App';
import router from './router';

Vue.use(Vuex);
const store = new Vuex.Store({
  state: {
    moo: true,
  },

  mutations: {
  },

  getters: {
  },

  actions: {
  },
  strict: process.env.NODE_ENV !== 'production',
});

Vue.config.productionTip = false;
Vue.config.devtools = true;

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>',
});

build, then deploy to surge:
$ yarn build; surge dist/

This is not a big and not related to the template.
Devtools don't work by default in production mode. Try setting Vue.config.devtools to true.
https://vuejs.org/v2/api/#devtools

Ummm. Did you see that line in my main.js?
Vue.config.devtools = true;
Is there something else I have to set?

Also, as shown in the screenshots, devtools work just fine online. Only the store inspection doesn’t.

I missed that line, sorry.
Please open an issue in the devtoola repository with a reproduction that the guys can run for themselves.
The problem is most likely not related to this template.


Treat missing isActive as 0 param

Problem:
Cloudkit does not return the field isActive when 0. Features will never be turned off because processing is skipped.
Fix:
Treat lack of isActive as 0.
Additional Info
Logs with isActive = 1
{
	creatorUserRecordID -> <CKRecordID: 0x281f2dba0; recordName=__defaultOwner__, zoneID=_defaultZone:__defaultOwner__>
	lastModifiedUserRecordID -> <CKRecordID: 0x281f2dc80; recordName=__defaultOwner__, zoneID=_defaultZone:__defaultOwner__>
	creationDate -> 2021-06-19 12:07:00 +0000
	modificationDate -> 2021-06-19 13:21:09 +0000
	modifiedByDevice -> 2
	featureName -> "test1"
	isActive -> 1 (type q)
}

Logs with isActive = 0
{
	creatorUserRecordID -> <CKRecordID: 0x28111cf60; recordName=__defaultOwner__, zoneID=_defaultZone:__defaultOwner__>
	lastModifiedUserRecordID -> <CKRecordID: 0x28111d120; recordName=__defaultOwner__, zoneID=_defaultZone:__defaultOwner__>
	creationDate -> 2021-06-19 12:07:00 +0000
	modificationDate -> 2021-06-19 13:24:54 +0000
	modifiedByDevice -> 2
	featureName -> "test1"
}

Thanks for your contribution 👍

Thank you for the assistance @dehlen


Make RowSelection's from_consecutive_ranges public

Which issue does this PR close?
Closes #5846
Rationale for this change
This constructor method should be easier to use.
What changes are included in this PR?

make the from_consecutive_ranges function public
tweak a bit and makes the total rows optional
update the tests.

Are there any user-facing changes?
NO.

The CI failure seems unrelated to this PR?

@korowa fixed this in https://github.com/apache/arrow-rs/pull/5866 earlier today
I merged up from main to get a clean CI run

🚀


Why are the joints regressed from posed vertices?

Thanks for the great work! I have a question about the evaluation. Currently, the joint positions are computed for both GT and prediction by applying the joint regressor to the posed mesh vertices. This won't be the same as the actual joints of SMPL given as the joint output from the SMPL model (since the standard way is to apply the regressor after applying the shape blendshapes but before posing). Is there any particular reason for not using the joint output from SMPL? Thanks!

Also, why is a H36M regressor and 14 joints used for 3DPW? Why not evaluate the SMPL joints like on RICH and EMDB?

Hi @isarandi
Thank you for your feedback! To be honest, I thought smpl_output.joints was identical to the joints regressed from the vertices. I borrowed the code from BEDLAM's evaluation script, where they also computed 3D joints through the regression matrix. I will review other methods' evaluation metrics and follow the convention (joints obtained from SMPL's forward pass and J_regressor are quite similar, MPJPE ~ 3mm). But thank you for the heads up!
Furthermore, we also followed the convention of the field that they compute 3DPW based on the J14 format.

Thank you!


Test: Improvements to Edit Sessions debug view

Refs https://github.com/microsoft/vscode/issues/156334, https://github.com/microsoft/vscode/issues/156337

[ ] Windows @gregvanl
[x] macOS @sandy081
[x] Linux @deepak1556

Authors: @joyceerhl
Complexity: 2
Create Issue

We have an Edit Sessions view for debugging purposes. This view now shows you which machine each Edit Session originates from.

Have some uncommitted edits in a desktop git clone of a repo or a vscode.dev repo
Run Store Current Edit Session (ideally, do this from a couple of different places, e.g. VS Code desktop as well as VS Code for the web)
Run Show Edit Sessions
Verify that the Edit Sessions view now tells you which machine each Edit Session came from
Verify that the tree node is now the repo name instead of a GUID

There was one moment where it worked flawlessly that I could see sessions in browser and desktop and delete them. But most of the times I hit issues with long loading requests.

Part of the trouble I've been having may be that I don't understand how Edit Sessions are meant to work. My mental model was they were snapshots that could be applied manually to move a repo to a specific state.
It appears that Edit Sessions are more of an automatic way to apply changes to a repo when you reopen a VS Code instance on a repo which has a store Edit Session. I found the feature pretty confusing


Universal Selector performance question

Is there any performance issues of using global universal star selector *?

As sanitize.css uses it, even in older browsers? No. If mixed it into other selectors (class, tag, etc) without explicit > or + relationships, I believe the universal selector can be more costly.


Investigate background download from within Explore plugin

In Kolibri if a user starts a channel download in the Device tab, the Task manager is displayed:

The download continues in the background when the user navigates elsewhere. And the progress can be fetched from other pages. Here the progress is shown in the Device channels page:

So there must be a way to start a channel download in the background from within the Explore tab, by adding a task to the task manager.
Goal:

Investigate what does the Device tab do for adding a task to the Task manager.
Check how the same mechanism can be used to start a channel download in the background from within the Explore tab.

The button added by #532 can be used as trigger.
Note: our starter pack download is not using the tasks manager (navigating to /device/#/content/manage_tasks in the middle of a pack download shows nothing). This should be fixed in the future!

This Kolibri documentation may be relevant: https://kolibri-dev.readthedocs.io/en/develop/backend_architecture/tasks.html

Note: our starter pack download is not using the tasks manager (navigating to /device/#/content/manage_tasks in the middle of a pack download shows nothing). This should be fixed in the future!

Are you sure about that? CollectionDownloadManager is all about tasks and enqueues the remotecontentimport when importing content. This is the same thing that happens from the device plugin.

I'm pretty confident you make a POST request to /api/tasks/tasks/ with a JSON body containing type: "kolibri.core.content.tasks.remotecontentimport" and then all the typical import parameters like channel_id, node_ids, exclude_node_ids, etc.

So there must be a way to start a channel download in the background from within the Explore tab, by adding a task to the task manager.

@manuq Are you talking here about downloading the metadata for a particular additional channel; or downloading a particular piece of content on-demand?

Like https://github.com/endlessm/eos-image-builder/blob/master/hooks/content/50-kolibri-content#L66 except that's written against 0.15 and the task API changed a bit for 0.16. https://kolibri-dev.readthedocs.io/en/develop/backend_architecture/tasks.html#enqueuing-tasks-via-the-post-api-tasks-tasks-api-endpoint shows how to do it for 0.16. If you open a developer console with vanilla Kolibri you'll see requests like that from the device page.

@wjt yes the idea is to download a full channel in the background. This will be triggered by a button in a channel that's not available (or maybe with partial availability?).
In parallel I'm also checking how to download a single resource in the background. This will be triggered by a cloud button in resource cards that aren't available.
@dbnicholson thanks a lot for the references! Those APIs were exactly where I was heading.

In parallel I'm also checking how to download a single resource in the background. This will be triggered by a cloud button in resource cards that aren't available.

There's only the remotecontentimport task API which works at the ContentNode level, but I think it's likely good enough. You just specify a single element node_ids list then you'll only get the files associated with that node and any ascendant and descendant topic thumbnails.

@dbnicholson for a single resource I see a remoteresourceimport. The only parameter is the resource node_id. But seems to be in the works (it will only work with Studio 0.16). So yes, the remotecontentimport task should be enough for both a single resource and the full channel.

The POST /api/tasks/tasks/ with the following payload parameters works for downloading a single resource:
{
  "type": "kolibri.core.content.tasks.remotecontentimport",
  "channel_id": "057f871caa405ec29d62ba0523c193d7",
  "channel_name": "foo",
  "node_ids": [
    "4cfbedfe9ab659d28c36069e853b6eca"
  ],
  "update": true
}

And the full channel can be downloaded by passing the root node in node_ids. That is, use the same ID as in channel_id.
This makes the task appear in the tasks at Device tab Task manager /device/#/content/manage_tasks

Then GET /api/tasks/tasks/{id}/ can be used with the task ID in the response to keep track of the task progress.
Since I have Kolibri setup for development, I used the API explorer by opening /api_explorer:

For UI reasons channel_name is mandatory so I just passed "foo". Just like we do when downloading the collections.
Ideally we would just trigger the download from the kolibri-explore-plugin and then redirect users to the Device tab.
But the requirements are that we track progress and update the state / refresh the UI. So I fear that we'll be duplicating some code with the Device plugin.
Closing as done. I will open follow-ups to actually implement the download.

Ideally we would just trigger the download from the kolibri-explore-plugin and then redirect users to the Device tab. But the requirements are that we track progress and update the state / refresh the UI. So I fear that we'll be duplicating some code with the Device plugin.

Yes, is an interesting work around to re-direct to the device tab but it would break being a seamless content management experience. Some code duplication is an acceptable trade-off here I think.

Ideally we would just trigger the download from the kolibri-explore-plugin and then redirect users to the Device tab. But the requirements are that we track progress and update the state / refresh the UI. So I fear that we'll be duplicating some code with the Device plugin.

Yes, is an interesting work around to re-direct to the device tab but it would break being a seamless content management experience. Some code duplication is an acceptable trade-off here I think.

Yes, that's the requirement we have and I understand it. For the record, I wanted to state that this is not ideal.


automate quizzes ?

would be possible to automate quizzes and open links?

No it is not possible and is not the intention of this extension either, sorry


Little error with MIDI QoL

Lock and Key Version: 1.9.9
Midi Version:  <IP_ADDRESS>

Sorry about the little information, the original issuer just give me this screenshot,

Nevermind i see the latest version is 1.9.12

I thin this error should persist in v1.9.12


Add a Sample for Microsoft "eShopOnContainers" that utilize Steeltoe Features

Need
eShopOnContainers   is Great Sample Code reference for working with Microservices and Containers with .Net Core Created by Microsoft , that a lot of .Net developers consider as the Only mature reference for working with Microservices and containers in .Net Core.
I Think it will be a Great idea to Fork this Repo and Create based on it a Sample that Utilize all Steeltoe Great Features in one Project and even Replace the "musicStore" Sample with this eShopOnContainers.
Value
Most of .Net developers now consider eShopOnContainers a Reference for Microservices, and it will be much easier for them to take a look at Steeltoe features and take a look and even compare them with the original project.

This is a good idea, and it has been done before... we're working on getting an updated version of that conversion in here and will update the issue when it is available!

Great to hear that, and waiting for this update.

@TimHess could you please share updates?

There is a pull request to add this sample pending (https://github.com/SteeltoeOSS/Samples/pull/47) but the team hasn't had a chance to go through it yet. As I recall from conversation outside that PR, there's some additional work required to complete it.

There is a pull request to add this sample pending (#47) but the team hasn't had a chance to go through it yet. As I recall from conversation outside that PR, there's some additional work required to complete it.

Hope to see this in the near future, it will be a great sample for us to study!

Rather than accept that PR, we made a fork, which you can find here: https://github.com/SteeltoeOSS/eShopOnContainers
As of today, our version has MySQL (with the Steeltoe EF Core connector), Steeltoe Management, Config Server and service discovery with Eureka


Port splitCheck and SplitCheckObserver test.

@coocood PTAL, thanks.

@coocood PTAL again, thanks.

some test are removed, because they relies on the approximation related  strategies such as getRegionApproximateMiddle, while these strategies are not implemented right now.

LGTM


[BUG] Fix Home Page Shows Incorrect Listings

Describe the bug
https://www.rebuildblackbusiness.com/businesses/ is still making this api call:
https://api.rbb-api.com/api/v1/businesses?page=1&pageSize=11&in-need=true
with the "in-need" in the parameter, when that parameter should be omitted entirely. I think I called this out like a month ago.
essentially it should show you the same results as if you clicked "search" on the form with no filters, which is basically this page:
https://www.rebuildblackbusiness.com/businesses/all
which indeed appears to make the correct API call: https://api.rbb-api.com/api/v1/businesses?page=1&pageSize=11
I believe this bug is from an incomplete implementation of #343
To Reproduce
Steps to reproduce the behavior:

Go to rebuildblackbusiness.com and click "SEE  BUSINESSES"
Notice that the first result on the page is "Nari Boo Cosmetics" which was part of our original "In Need" businesses. We should be looking at ALL BUSINESSES on the main page, not just a small subset.
Also notice the pagination is only "12 pages" which further demonstrates the limited set of results

Expected behavior
The first page of businesses should be showing all businesses, as if someone had clicked "search" without selecting any filter or entering any location

This was fixed as part of #374 -- thank you @Mhmdabed11  !!!!

see above comment


Calendar event not being added on Sunday when firstDayOfWeek: WeekDay.sunday

When I click on the date, I see an event. But event is not being shown in the calendar view.

When I click on the date, I see an event. But event is not being shown in the calendar view.

When I click on the date, I see an event. But event is not being shown in the calendar view.

The event is not being shown in the calendar view.
Extra events are not shown if the number of events is greater than maxEventLines (4 by default). In this case, +N is displayed beside the day number. You can see +1 on the screenshot.
@trueinnidhi  Please show me how the calendar looks like on Sunday in your app?

@trueinnidhi  If you still have any questions, please reopen the issue


Trouble with continous deployment integrations

Problem
I've hooked up my slate project to a CI tool (Buddy), and it seems to be working fine except for the fact that it doesn't ignore the makred files in my .env file.
My current command in my CI tool it yarn build --skipPrompts, and then it pushes to the Shopify theme in my store.
What is the command line flag for adding a file ignore during build/deploy?

Closing this because I found that my CI (Buddy allows to ignore files)


(122) Finish ingest of files - API Changes

Update SubmissionFile with number of rows to be ingested
-- Add rows column to SubmissionFile
-- Modify PATCH v1/submissions/:submission_id/files/:id endpoint to update rows column and add tests
-- Modify POST and PATCH endpoints for submission_file_controller and tests to json api format

API endpoint PATCH /v1/files/:file_id/entries/:entry_id stores validation status and errors received from DAVE

Add PATCH /v1/tasks/:task_id endpoint for updating a task's attributes

Add Add GET v1/files/:id` endpoint to retrieve submission_file details and add validation_errors to submission_entry json response

@leeky  this is ready for a second look.

@esteedqueen Thanks - LGTM! :shipit:


Add GALAXY Prediction File

Hi,
Our GALAXY model uses your standardized scoring scripts to conduct new evaluations on both end-to-end modeling and policy optimization tasks. We have already reported the new SOTA results in the official MultiWOZ repo. So we upload two prediction files here, where 'galaxy-e2e.json' for the end-to-end generation while 'galaxy-policy.json' for the policy optimization.
Please check it. Thanks a lot!
Best,
Wanwei

Great job guys!


Annotation to enable tls for Ingress objects that have a tls spec should not be required

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
Split from #8502
If an Ingress specifies a tls key in the spec, TLS should be enabled without requiring further configuration via annotations. Requiring an annotation to make TLS function results in user confusion when they appear to have a correctly defined Ingress, but receive a 404 upon accessing the TLS port.

I have a PR for this ready to send, if this is likely to be accepted.


Error when try to follow Microsoft tutorial https://docs.microsoft.com/en-us/learn/modules/develop-app-that-queries-azure-sql/5-exercise-connect-aspnet-to-azure-sql

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az webapp up
Errors:
The scale operation is not allowed for this subscription in this region. Try selecting different region or scale option.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...

Follow the steps in https://docs.microsoft.com/en-us/learn/modules/develop-app-that-queries-azure-sql/5-exercise-connect-aspnet-to-azure-sql. It fails in command:
WEBAPPNAME=educationapp-$RANDOM
az webapp up
--resource-group learn- ... XXX-7afdfd35530e
--sku F1
--name $WEBAPPNAME

az webapp up --resource-group {} --sku {} --name {}

Expected Behavior
Environment Summary
Linux-4.15.0-1063-azure-x86_64-with-debian-stretch-sid
Python 3.6.5
Shell: bash

azure-cli 2.0.77

Additional Context

Please upgrade to azure-cli 2.0.77 and try again.

Make sure you are using the latest version of Azure-cli & running the command from the context of the local directory where the code is - please reactivate if this still an issue.


How to add other neural network models with least modifications of your work?

Thank you for your marvelous work!
I have already read this issue:
https://github.com/felixchenfy/Realtime-Action-Recognition/issues/46
However, I would like to know how to add other neural network models with the least modifications of your work?
like mobilenet_v2_large, mobilenet_v2_small, mobilenet V1, V2 ,V3, openpose-darknet, YOLO, SSD, vgg-???, resnet-??? ... and so on.
Any help is appreciated.

Hi, sorry there are only 2 options... mobilenet_thin and cmu.
I used the code of this github project https://github.com/ildoonet/tf-pose-estimation, which only supports the above two options.


[BUG] space dtype differs from gym

Describe the bug
Note the mismatch of dtype below:
>>> e = envpool.make("HalfCheetah-v4", "gymnasium")
>>> e.action_space
Box(-1.0, 1.0, (6,), float64)
>>> import gymnasium
>>> gymnasium.make("HalfCheetah-v4").action_space
Box(-1.0, 1.0, (6,), float32)

Expected behavior
I'd expect envpool to stay as close as possible to gymnasium API.

p.s. for completeness, behavior is such that one can currently pass both float32 and float64 with no exception.


navbar with dropdown, dropdown not working after modal closure

Hi, I'm using bootstrap navbar with a navbar dropdown. Within the navbar, I have an option to change user password which makes a bootstrapDialog.load('view') function to load the cshtml view within the modal. Everything works fine until I close that modal popup and the dropdown doesn't work. Can you please tell me why is this doing it? I see no errors in the console and don't know what would the best approach. I'm still testing the app, if you come with some solutions, please help.
Thanks

We are unable to provide assistance with problems involving backend or third-party frameworks such as ASP.
Per our policy (https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#bug-reports ), bug reports must include a reduced test case that demonstrates the alleged problem. If you can create & post such a testcase (which must not involve ASP) for your problem, I will be happy to reopen this issue for further investigation. Thanks.


Only part of the screen is in Chinese, the rest is in English

Bug description

Only part of the screen is in Chinese, the rest is in English
Screenshots/recordings
No response
Superset version
master / latest-dev
Python version
3.10
Node version
18 or greater
Browser
Chrome
Additional context
No response
Checklist

[ ] I have searched Superset docs and Slack and didn't find a solution to my problem.
[ ] I have searched the GitHub issue tracker and didn't find a similar bug report.
[ ] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

@dosu how to use pybabel

@dosu  it does not work

@dosu 出现了下边的错误
(python-10-local-test) PS F:\LT\workspcae_new\superset-master> pybabel compile -d superset/translations
error: superset/translations\ar\LC_MESSAGES\messages.po:164: placeholders are incompatible
error: superset/translations\ar\LC_MESSAGES\messages.po:172: placeholders are incompatible
error: superset/translations\ar\LC_MESSAGES\messages.po:180: unknown named placeholder 'prefix'
error: superset/translations\ar\LC_MESSAGES\messages.po:343: placeholders are incompatible
error: superset/translations\ar\LC_MESSAGES\messages.po:1678: incompatible format for placeholder 1: 's' and 'd' are not compatible
error: superset/translations\ar\LC_MESSAGES\messages.po:2412: placeholders are incompatible
error: superset/translations\ar\LC_MESSAGES\messages.po:3580: placeholders are incompatible
error: superset/translations\ar\LC_MESSAGES\messages.po:3691: unknown named placeholder 'name'
error: superset/translations\ar\LC_MESSAGES\messages.po:5955: placeholders are incompatible

@dosu Change the menu Item， What file is the triggered function in? How was it achieved?
export default function LanguagePicker(props: LanguagePickerProps) {
const { locale, languages, ...rest } = props;
console.log('====================================');
console.log(languages);
console.log('====================================');
return (
<SubMenu
aria-label="Languages"
title={

<StyledFlag className={flag ${languages[locale].flag}} />

}
icon={<Icons.TriangleDown />}
{...rest}
>
{Object.keys(languages).map(langKey => (
<Menu.Item
key={langKey}
style={{ whiteSpace: 'normal', height: 'auto' }}
>

<i className={flag ${languages[langKey].flag}} />
{languages[langKey].name}

</Menu.Item>
))}

);
}

@dosu the url is /lang/zh， where will it reach？

Hi there. Indeed, we don't consider incomplete translations to be bugs, but we do welcome additional contributions to the translation effort (basically, editing the .po files as documented here.)


Verification

What is your username and discriminator?
🐰 tim241 🐰#3172
Why did you join Discord Linux?
because I'm a fellow linux user and wanted to chat and help others.
Where did you hear about Discord Linux?
I heard it from other linux users in other discord servers
What is the passphrase that was assigned to you by the bot?
baritone-quarter-clap-breeze

From simonizor#0420 :
Looks good.  I've given you a temporary role so that you can enter the passphrase in the welcome channel.


Upon further testing it appears that the reactivity is broken after all, need to revert the commit above for now

superseeded by #43


sequeler: 0.6.4 -> 0.6.5

Motivation for this change
Changelog: https://github.com/Alecaddd/sequeler/releases/tag/v0.6.5
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Assured whether relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@GrahamcOfBorg build sequeler


F# interactive shows random characters when editing a line

VSCode Version: Code 1.8.0 (38746938a4ab94f2f57d9e1309c51fd6fb37553d, 2016-12-13T17:45:32.595Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions:

Extension
Author
Version

Ionide-fsharp
Ionide
2.13.2

csharp
ms-vscode
1.5.3

Steps to Reproduce:

Type a few characters
Press backspace a few times

or

Type a few characters
Use mouse to select a character in the middle
Type a few characters

This issue was moved to ionide/ionide-vscode-fsharp#315


Python

@VISWANATH78 closing this PR because of no response.  You can reopen PR if you want.

Yeah i am developing it might take some time but i  provide my contribution within today


[BUG]: Update CSM-Docs for Resiliency

Bug Description
In CSM-Docs, updating the content "Not Yet Tested or Supported" in Resiliency for PowerFlex.
Logs
No logs.
Screenshots
No response
Additional Environment Information
No response
Steps to Reproduce
N/A
Expected Behavior
Updated Resiliency content in "Not Yet Tested or Supported" for PowerFlex in CSM-Docs.
CSM Driver(s)
CSI-PowerFlex
Installation Type
No response
Container Storage Modules Enabled
No response
Container Orchestrator
Kubernetes
Operating System
N/A

Link: 24539


[Feature]: Expose implementation details of the KV Cache

Background & Description
Since I'm using LLamaSharp on the edge, initial prompt evaluation is high fixed cost. Since my prompts are static (for the most part), I'd like to pre-initialize the KV cache and have end users consume it as a gguf file, trading compute for storage. Based on my read of the code base, there is no specific abstraction for the llama.cpp KV store.
This probably ties into #684.
I'm interested in working on this, just marking the concept down to avoid any conflicts / idea-planning.
API & Usage
KV caches are specific to a model? Maybe there should be a whole separate class that deals with the abstraction of the kv cache. llama.cpp already has APIs designed to programmatically manipulate it.
How to implement
Expose llama_kv_cache_* implementations in a high-level manner.

Are you sure you need KV cache access? If you're just wanting to pre-process a prompt and re-use it then it sounds to me more like you want to save/load states. The high level executors (Instruct/Interact Executor) expose methods to save a file which can be used to load that conversation back up later, I believe that should contain the saved KV cache for that sequence.
There are various ways to access the KV cache exposed in a few different places.
The "raw" low level API is in NativeApi starting at line 285:

llama_get_kv_cache_token_count
llama_get_kv_cache_used_cells
llama_kv_cache_clear
llama_kv_cache_seq_rm
llama_kv_cache_seq_cp
llama_kv_cache_seq_keep
llama_kv_cache_seq_add
llama_kv_cache_seq_div
llama_kv_cache_seq_pos_max

The SafeLLamaContextHandle exposes wrappers around these starting at line 566. You should prefer to use these wrappers over the raw APIs, they're intended to expose all of the power of the lower level but with extra safety where possible (e.g. a pointer and a length parameter would be replaced with a Span in these wrappers).
If you're using the BatchedExecutor (which is a in-development "low level" executor, more difficult to sue than the other executors but more powerful) then each Conversation object exposes a KV accessor, which can be used to manipulate the KV cache for that sequences. You can see that in use here.

Yep, I've thought about using those APIs, but I believe my use case is a bit more specific. The prompts themselves aren't static, but parts of the prompt are. For example, with RAG, the prompt might be:
You are a helpful assistant. Answer the following question using the following pieces of information:

# Context

{c1}

{c2}

{c3}

{c1}, {c2}, {c3}, etc. aren't static but I'm confident the rest of the prompt is. I've benchmarked and the initial prompt evaluation is a big fixed cost.
I've also thought about using the APIs exposed in SafeLLamaContextHandle, but based on the documentation in the llama.cpp header file, those are only for debugging and only provide a view on the underlying cache.
I haven't tested this yet, but I'm not sure the SaveState method is portable? In addition, I think it probably includes stuff I'm not interested in, and would like to minimize the size of the file. I guess in general, I'm interested in an analogous equivalent to the llama.cpp --prompt-cache CLI argument.

Actually, I dug a little bit through the llama.cpp code base, and it seems that all the prompt-cache option does is call the llama_state_save_file, which is already the function you've exposed. So that's good, I was mistaken. That being said, it would be nice to have a higher-level API for manipulation of the KV cache outside the SafeLLamaContextHandle.

{c1}, {c2}, {c3}, etc. aren't static but I'm confident the rest of the prompt is. I've benchmarked and the initial prompt evaluation is a big fixed cost.

Yep so my suggest was to evaluate everything before {c1}, save that, and then you can resume from there later on.

but based on the documentation in the llama.cpp header file, those are only for debugging and only provide a view on the underlying cache.

Some of the function here are specifically for debugging only, but not all of them (it will be mentioned in the comments). The debugging ones are exposed in a higher level wrapper through LLamaKvCacheView.
e.g. llama_get_kv_cache_token_count is for debugging but llama_kv_cache_seq_rm is definitely not!

For an overall API design, Llama-cpp-python exposes a LLamaState and LLamaCache

I can't find any docs on LLamaCache, do you have a link to any? From a look at the implementation here, it looks like it automatically loads and saves states (using llama_state_save_file presumably) so you can resume a sequence later using the same cache?

Yeah, I just read through the code, it's not really documented. Here's where it's actually used though. https://github.com/abetlen/llama-cpp-python/blob/165b4dc6c188f8fda2fc616154e111f710484eba/llama_cpp/llama.py#L1073C1-L1089C1. It seems LLamaCache is basically just a thin wrapper over LlamaState, where it handles continuous exporting of the state?


Update Clarity Supported Types with latest changes

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@lgalabru You did not mention the unsigned int in particular under the Int type. Was that intentional?


sql: SHOW TABLES

Fixed https://github.com/gitql/gitql/pull/62

Fixed https://github.com/gitql/gitql/pull/64


feat: Added ability to get metadata for a single sdb by name

Added sdbName filter so that we can get metadata for a single SDB.

Coverage decreased (-0.05%) to 55.202% when pulling 8132b29c5b76ee3b3d221805696d5172cd6fdaa2 on feature/metadata_sdb_name_filter into 46c855ff2843eac575b9763ec2b94fb9e5e7b2ff on master.


Bump conditional.authentication.functions.version

Note $subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/752382082

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/752382082
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/754257390

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/754257390
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/754745230

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/754745230
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/755568502

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/755568502
Status: success


Wizard Antagonist

About the PR
Adds Wizard Antagonist which requires 20 people to start and has the same time requirements as Nukie Commander
Adds multiple new spells + spellbooks
Adds Wizard Comms Console
Adds Wizard Stamp
Changes to the Wizard Shuttle
Adds new wizardry spellbook which acts as a type of uplink for the Wizard to buy spells
Why / Balance

Technical details

Media

I have videos of the wizard stuff in the dev-channel of the discord

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

EternalShibe is also me btw, I forgot to change my git stuff until like halfway through

Merged.

i'm gonna add some shit to this because i got ideas

The antagonist role does not appear selectable.


Compile time errors in ChefSpec

Cookbook version
4.3.3
Chef-client version
ChefDK 2.4.17
Platform Details
Travis-CI
Scenario:
Trying to get what were passing specs to run and it looks like a recent change has now caused compile errors.
Steps to Reproduce:
Write a ChefSpec test with a cookbook that includes the iptables cookbook as a dependency, doesn't even have to be a direct dependency, it will fail.
Expected Result:
I expect it to compile and run the tests, but it does not get that far.
Actual Result:
Here is the backtrace I see in CI:
Chef::Exceptions::ValidationFailed:
       Property source must be one of: String!  You passed nil.
     # /tmp/chefspec20180215-4772-1f2r2qhfile_cache_path/cookbooks/iptables/resources/rule.rb:20:in `class_from_file'
     # ./spec/unit/recipes/networking_spec.rb:28:in `block (2 levels) in <top (required)>'
     # ./spec/unit/recipes/networking_spec.rb:37:in `block (3 levels) in <top (required)>'

The spec backtrace lines at the bottom are the ChefSpec::ServerRunner block calling env.converge(described_recipe) so this is definitely a compile time issue and validation is exploding.

I have pushed up a PR with a proposed fix.

Having the same issue with 4.3.3. openssh cookbook depends on this one, even though we're not using iptables at all and aren't calling any resources from it, but we are using openssh, and 4.3.3 is throwing the above exception with chef-client 13.7.6
I can provide more data if needed. Locking iptables to 4.3.2 for now as this fixes the issue.

4.3.3 was released shortly after this post and my PR so this is good to go now. See 3048af70d0c4fb0d8b6b203859ea62e33dd15332


Consolidate parameter and variable reference

Fixes https://github.com/microsoft/typespec/issues/3472
Ended up removing ParameterReference since we can simply use ParameterProvider and the converted VariableReferenceSnippet to VariableExpression.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Microsoft.Generator.CSharp


Corrected Step2 CLI command

In step 2. "Create the new role using the JSON file", the role name does not match the role name of the previous step.
Also, the CLI throws error using the--resource-group parameter stating "Resource group  is redundant because scope is supplied.

@lanceengland : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@lanceengland - thank you for your contribution.
#sign-off


fix(client): Expose plugin action dispatchers in React client

client.plugins contains dispatcher for plugin actions, but these aren’t currently exposed to the React client.
To-do

[ ] Expose plugin dispatchers in props. The plugins namespace is already used by state.plugins, because state is destructured into props, so some other API might be needed.

[ ] Add tests for the plugin dispatchers.

@nicolodavis Do you have any opinions on how to make the plugin dispatchers available in the React props. I’m currently trialling mixing the dispatchers into the plugins prop as a method named dispatch for each plugin so that you would do:
function Board(props) {
  const { data, dispatch } = props.plugins[pluginName];
  const onClick = () => dispatch('Go');
  return (
    <button onClick={onClick}>Go</button>
  );
}

It feels nice to keep all the plugin-related stuff under the same path, but it does mix methods and state in a way the rest of the props don’t. It also then diverges from the vanilla client API, which isn’t super great either.

I don't have a strong preference between either pattern, but I definitely do think that all of this needs to happen on the raw client.  The React layer should be very thin, merely wrapping an object that exists on the raw client.  This will also ensure that other implementations (Angular etc.) can stay in sync more easily and provide a consistent interface.
The current way of dispatching events is analogous to the way moves and events are dispatched:
client.moves.moveName();
client.events.eventName();
client.plugins.pluginName();

But I can see the benefit of also having the plugin data available under a single object rather than having to fish it out of the state.  If we do this, we should also erase it from the state before we send it to the client in order to avoid confusion that it is available in two places (this will also introduce a new type for the state object, so that needs consideration).

Just FYI, there is already a "plugins" prop coming for the react components (from the ...state), and this would overwrite it.
Also it was with this prop that I was able to get the plugin state. So for my proof of concept I created another prop pluginsDispatcher for this.
Probably a good idea to try to merge both on client getState() ?

A few more follow-up thoughts:

Putting plugins alongside moves and events does emphasise how much less expressive a plugin’s client-side API would be. Would the plan be to encourage a plugin to provide action creators if it needed structured action payloads?
import { Send } from 'PluginChat'

const action = Send('Hello', playerID)
client.plugins.chat(action)

If we did want to let plugins define a client-side API, how might we expose that?

Should we create a plugin dispatcher for a plugin if it doesn’t declare an action method?

If we want to preserve the vanilla client API as much as possible, should we stop destructuring state in the React board props? It’s a significant breaking change that would probably impact 100% of users using React, but the migration path is simple and for most people would mean modifying a single file and doing something like const { G, ctx, plugins } = props.state. This would resolve the namespace clash between client.plugins and state.plugins. I also kind of like how this might clarify what is coming from the game state to users.

Putting plugins alongside moves and events does emphasise how much less expressive a plugin’s client-side API would be. Would the plan be to encourage a plugin to provide action creators if it needed structured action payloads?

Yes, I think just exposing a single dispatch method gives the author more flexibility to use any action subdivision method that they would like to use.

Should we create a plugin dispatcher for a plugin if it doesn’t declare an action method?

Ah, we should probably not.  I didn't originally consider this.

should we stop destructuring state in the React board props?

I'm not opposed to this idea, but maybe we should kick this off as a RFC on the issue tracker and get some more opinions?  Maybe we can bunch this together with a slightly broader API overhaul.  For example, I'd also like to explore the idea I proposed here: https://github.com/nicolodavis/boardgame.io/pull/629#issuecomment-616900537

@nicolodavis Thanks for the feedback. Combining this with your proposed changes in #629 could make sense. Especially if we bundle a plugin like you describe to help smooth migration.
I'll probably be too busy this week to put together an RFC, so if you have time, please go ahead.
While we're on this topic I've been wondering about client plugins. I've been tinkering with a game plugin that pairs well with a client plugin to handle its state (in this case to create an event emitter). Currently though I would have to write different code for React boards and the vanilla client. It would be nice to support some kind of client plugin API that could be accessed on both the vanilla client and client wrappers (e.g. via a plugins option to the React client factory).

While we're on this topic I've been wondering about client plugins.

Oh I see.  Do you have a link to your client plugin?  Let's explore how we can add support for this.  Sounds like a good idea.

@nicolodavis I haven’t finished work on this, or even decided exactly what the best client API would be, but here’s the WIP: https://github.com/delucis/bgio-effects
I’ve tried to document as I go to clarify usage to myself, so the README should explain the general idea.


AddDisableGrpcLoadBalancingFilter missing in UseServiceDiscovery?

I was checking the Service Discovery code and find something that looks like a bug. HttpClientBuilderExtensions.UseServiceDiscovery  method has two overload. One will get IServiceEndPointSelectorProvider from the input and the other get it from DI. It seems to me that theses two methods have to be the same, but only one of them have AddDisableGrpcLoadBalancingFilter. Wondering if this is a bug.
https://github.com/dotnet/aspire/blob/3bed3eab52767e5b201d2103f69951514d2810df/src/Microsoft.Extensions.ServiceDiscovery/Http/HttpClientBuilderExtensions.cs#L25

@ReubenBond

Hi @Kahbazi, you're right - well spotted

I've opened https://github.com/dotnet/aspire/pull/1160 to rectify this


[proposal] InteractiveViewer DataTable widget

For responsive dataTables
This can already be made by a simple InteractiveViewer, but what I would like also is to have a sticky property in the DataColumn thats scrolls horizontaly and gets bigger and smaller when the rest of the table is being zoom in and out
To put an example, google sheets app

CC @justinmc @goderbauer

@goderbauer was working on ways to do this that don't involve InteractiveViewer.

I am going to close this as a duplicate of https://github.com/flutter/flutter/issues/87370, but I have added it to the 2D scrolling project where we are keeping track of all of these requests. This work is currently underway.


org archive action fails when no prior archive file exists

What did you expect to happen?
Org archive subtree operation (e.g., "SPACE m A") would work.
What actually happened?
If prior foo_archive.org exists, then archiving works.
If prior archive file does not exist, then get error below, no archiving occurs:
apply: Wrong number of arguments: (0 . 0), 1
Additional details:
Note that I've seen this problem for a while, with much (months?) older Doom Emacs, but only dug into the issue today. (i.e., even though I synched my Doom Emacs to HEAD today, it is not recent issue)

Debugger entered--Lisp error: (wrong-number-of-arguments (0 . 0) 1)
#f(compiled-function () (interactive nil) #<bytecode 0x1fe8914b541d>)(toggle)
apply(#f(compiled-function () (interactive nil) #<bytecode 0x1fe8914b541d>) toggle)
org-mode(toggle)
funcall-interactively(org-mode toggle)
call-interactively(org-mode)
org-archive-subtree(nil)
funcall-interactively(org-archive-subtree nil)
call-interactively(org-archive-subtree nil nil)
command-execute(org-archive-subtree)

Steps to reproduce:

create new file, foo.org
create an item (e.g., "* TODO archive me")
with cursor on item, "SPACE m A" to archive
error manifests

System information:

```
SYSTEM  type       darwin
        config     x86_64-apple-darwin18.7.0
        shell      /bin/zsh
        uname      Darwin 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6<IP_ADDRESS>~1/RELEASE_X86_64 x86_64
        path       (~/.emacs.d/bin/ /Applications/Emacs.app/Contents/MacOS/ /Library/Frameworks/Python.framework/Versions/3.8/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/go/bin /Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_14 /Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_14 /Applications/Emacs.app/Contents/MacOS/libexec/)
EMACS   dir        ~/.emacs.d/
        version    27.1
        build      Aug 12, 2020
        buildopts  --with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules
        features   NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER
        traits     (gui server-running envvar-file)
DOOM    dir        ~/.doom.d/
        version    2.0.9
        font       #
        theme      doom-spacegrey
        build      HEAD -> develop 2e61fbbf0 2020-12-13 00:21:10 -0500
        elc-files  169
        modules    (:completion company ivy :ui deft doom doom-dashboard doom-quit hl-todo hydra modeline nav-flash ophints (popup +all +defaults) ligatures treemacs vc-gutter vi-tilde-fringe window-select workspaces zen :editor (evil +everywhere) file-templates fold multiple-cursors rotate-text snippets :emacs dired electric ibuffer vc :term eshell :checkers syntax :tools (eval +overlay) (lookup +docsets) :os macos :tools magit :lang common-lisp data emacs-lisp go (haskell +dante) markdown (org +dragndrop +present +roam) python sh :config (default +bindings +smartparens))
        packages   ((org-super-agenda) (org-bookmark-heading :disable t) (org-fancy-priorities) (beacon) (org-superstar))
        unpin      (n/a)
        elpa       (n/a)
```

Two quick additions:

I got naming wrong above: "foo_archive.org" was supposed to be "foo.org_archive", according to archive naming scheme.

Second point (hit Cmd-Enter... premature submit):

If I create a foo.org_archive" file manually beforehand, archiving begins working for foo.org.

This sounds like an upstream issue. Try unpinning org-mode, then run doom sync -u and see if the issue goes away.

Actually, I cannot reproduce this behavior in vanilla Doom.

Actually, I cannot reproduce this behavior in vanilla Doom.
But I have noticed that you've byte-compiled your config. Run doom clean, restart Emacs, and see if the problem persists. If it does, run doom sync -u && doom build and check again.

Reviving as ran into this issue again, and it would be nice to understand it rather than always relying on the manual workaround.
Update: I tried both of these with no effect, and likewise I followed the unpinning instructions, again to no effect.
Looking at stack trace, it seems weird to me that call-interactively is adding a "toggle" parameter when calling org-mode, which presumably is the source of the error (i.e, "(0 . 0)" expecting precisely zero arguments, as I would expect)
Here is the stack trace, fwiw:
Debugger entered--Lisp error: (wrong-number-of-arguments (0 . 0) 1)
#f(compiled-function () (interactive nil) #<bytecode 0x1ff266cfd3b1>)(toggle)
apply(#f(compiled-function () (interactive nil) #<bytecode 0x1ff266cfd3b1>) toggle)
org-mode(toggle)
funcall-interactively(org-mode toggle)
call-interactively(org-mode)
org-archive-subtree(nil)
funcall-interactively(org-archive-subtree nil)
call-interactively(org-archive-subtree nil nil)
command-execute(org-archive-subtree)

IIUC, call-interactively is a C-compiled fn within Emacs, so can't see source easily. How can call-interactively add an argument like this?

Could my config be somehow leading to introduction of this superfluous argument? I don't see how, but given you cannot reproduce, and other mitigations didn't help...


Base version - Finalize

This pull request addresses the renaming and refinement of the base version of this project.
The original branch, named base_abstract_version, has been renamed to better reflect the current state of the project.
The base version has evolved significantly and is no longer abstract, requiring mostly frontend work before it can be merged into the main branch.
My current TODO list:

Implementing Backend Tests

Implementing Backend Rate limiter (middleware)

Multi Stage Docker - Frontend (Implementing Ngnix)

Fixing Docker Compose - Backend connection with the MongoDB

Implementing Fully TypeScript (currently its partial)

Implementing Better practices like api as a service in frontend

Implementing Tan Stack maybe Redux and Tan Stack Router (not sure)

Implementing Frontend JWT routing

it may change according to the flow and direction this project will take over the basic version..

Resolved most vital issues for some sort of base version (no operational but it has all the infrastructurefor development now).