Fix: you can't really skip an index in an array

This commit is contained in:
Laurent Clouet
2024-02-28 12:45:12 +00:00
parent cb0004c434
commit a4cb145f3f

View File

@@ -1,7 +1,9 @@
package com.sheepit.client.hardware.gpu.nvidia;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sheepit.client.hardware.gpu.GPUDevice;
import com.sheepit.client.hardware.gpu.GPULister;
@@ -18,138 +20,143 @@ public class Nvidia implements GPULister {
private static final String MINIMUM_DRIVER_VERSION = "470";
private String getCudaErrorString(int errornum) {
String[] cudaerror = {};
cudaerror[0] = "cudaSuccess";
cudaerror[1] = "cudaErrorInvalidValue";
cudaerror[2] = "cudaErrorMemoryAllocation";
cudaerror[3] = "cudaErrorInitializationError";
cudaerror[4] = "cudaErrorCudartUnloading";
cudaerror[5] = "cudaErrorProfilerDisabled";
cudaerror[6] = "cudaErrorProfilerNotInitialized";
cudaerror[7] = "cudaErrorProfilerAlreadyStarted";
cudaerror[8] = "cudaErrorProfilerAlreadyStopped";
cudaerror[9] = "cudaErrorInvalidConfiguration";
cudaerror[12] = "cudaErrorInvalidPitchValue";
cudaerror[13] = "cudaErrorInvalidSymbol";
cudaerror[16] = "cudaErrorInvalidHostPointer";
cudaerror[17] = "cudaErrorInvalidDevicePointer";
cudaerror[18] = "cudaErrorInvalidTexture";
cudaerror[19] = "cudaErrorInvalidTextureBinding";
cudaerror[20] = "cudaErrorInvalidChannelDescriptor";
cudaerror[21] = "cudaErrorInvalidMemcpyDirection";
cudaerror[22] = "cudaErrorAddressOfConstant";
cudaerror[23] = "cudaErrorTextureFetchFailed";
cudaerror[24] = "cudaErrorTextureNotBound";
cudaerror[25] = "cudaErrorSynchronizationError";
cudaerror[26] = "cudaErrorInvalidFilterSetting";
cudaerror[27] = "cudaErrorInvalidNormSetting";
cudaerror[28] = "cudaErrorMixedDeviceExecution";
cudaerror[31] = "cudaErrorNotYetImplemented";
cudaerror[32] = "cudaErrorMemoryValueTooLarge";
cudaerror[34] = "cudaErrorStubLibrary";
cudaerror[35] = "cudaErrorInsufficientDriver";
cudaerror[36] = "cudaErrorCallRequiresNewerDriver";
cudaerror[37] = "cudaErrorInvalidSurface";
cudaerror[43] = "cudaErrorDuplicateVariableName";
cudaerror[44] = "cudaErrorDuplicateTextureName";
cudaerror[45] = "cudaErrorDuplicateSurfaceName";
cudaerror[46] = "cudaErrorDevicesUnavailable";
cudaerror[49] = "cudaErrorIncompatibleDriverContext";
cudaerror[52] = "cudaErrorMissingConfiguration";
cudaerror[53] = "cudaErrorPriorLaunchFailure";
cudaerror[65] = "cudaErrorLaunchMaxDepthExceeded";
cudaerror[66] = "cudaErrorLaunchFileScopedTex";
cudaerror[67] = "cudaErrorLaunchFileScopedSurf";
cudaerror[68] = "cudaErrorSyncDepthExceeded";
cudaerror[69] = "cudaErrorLaunchPendingCountExceeded";
cudaerror[98] = "cudaErrorInvalidDeviceFunction";
cudaerror[100] = "cudaErrorNoDevice";
cudaerror[101] = "cudaErrorInvalidDevice";
cudaerror[102] = "cudaErrorDeviceNotLicensed";
cudaerror[103] = "cudaErrorSoftwareValidityNotEstablished";
cudaerror[127] = "cudaErrorStartupFailure";
cudaerror[200] = "cudaErrorInvalidKernelImage";
cudaerror[201] = "cudaErrorDeviceUninitialized";
cudaerror[205] = "cudaErrorMapBufferObjectFailed";
cudaerror[206] = "cudaErrorUnmapBufferObjectFailed";
cudaerror[207] = "cudaErrorArrayIsMapped";
cudaerror[208] = "cudaErrorAlreadyMapped";
cudaerror[209] = "cudaErrorNoKernelImageForDevice";
cudaerror[210] = "cudaErrorAlreadyAcquired";
cudaerror[211] = "cudaErrorNotMapped";
cudaerror[212] = "cudaErrorNotMappedAsArray";
cudaerror[213] = "cudaErrorNotMappedAsPointer";
cudaerror[214] = "cudaErrorECCUncorrectable";
cudaerror[215] = "cudaErrorUnsupportedLimit";
cudaerror[216] = "cudaErrorDeviceAlreadyInUse";
cudaerror[217] = "cudaErrorPeerAccessUnsupported";
cudaerror[218] = "cudaErrorInvalidPtx";
cudaerror[219] = "cudaErrorInvalidGraphicsContext";
cudaerror[220] = "cudaErrorNvlinkUncorrectable";
cudaerror[221] = "cudaErrorJitCompilerNotFound";
cudaerror[222] = "cudaErrorUnsupportedPtxVersion";
cudaerror[223] = "cudaErrorJitCompilationDisabled";
cudaerror[224] = "cudaErrorUnsupportedExecAffinity";
cudaerror[225] = "cudaErrorUnsupportedDevSideSync";
cudaerror[300] = "cudaErrorInvalidSource";
cudaerror[301] = "cudaErrorFileNotFound";
cudaerror[302] = "cudaErrorSharedObjectSymbolNotFound";
cudaerror[303] = "cudaErrorSharedObjectInitFailed";
cudaerror[304] = "cudaErrorOperatingSystem";
cudaerror[400] = "cudaErrorInvalidResourceHandle";
cudaerror[401] = "cudaErrorIllegalState";
cudaerror[402] = "cudaErrorLossyQuery";
cudaerror[500] = "cudaErrorSymbolNotFound";
cudaerror[600] = "cudaErrorNotReady";
cudaerror[700] = "cudaErrorIllegalAddress";
cudaerror[701] = "cudaErrorLaunchOutOfResources";
cudaerror[702] = "cudaErrorLaunchTimeout";
cudaerror[703] = "cudaErrorLaunchIncompatibleTexturing";
cudaerror[704] = "cudaErrorPeerAccessAlreadyEnabled";
cudaerror[705] = "cudaErrorPeerAccessNotEnabled";
cudaerror[708] = "cudaErrorSetOnActiveProcess";
cudaerror[709] = "cudaErrorContextIsDestroyed";
cudaerror[710] = "cudaErrorAssert";
cudaerror[711] = "cudaErrorTooManyPeers";
cudaerror[712] = "cudaErrorHostMemoryAlreadyRegistered";
cudaerror[713] = "cudaErrorHostMemoryNotRegistered";
cudaerror[714] = "cudaErrorHardwareStackError";
cudaerror[715] = "cudaErrorIllegalInstruction";
cudaerror[716] = "cudaErrorMisalignedAddress";
cudaerror[717] = "cudaErrorInvalidAddressSpace";
cudaerror[718] = "cudaErrorInvalidPc";
cudaerror[719] = "cudaErrorLaunchFailure";
cudaerror[720] = "cudaErrorCooperativeLaunchTooLarge";
cudaerror[800] = "cudaErrorNotPermitted";
cudaerror[801] = "cudaErrorNotSupported";
cudaerror[802] = "cudaErrorSystemNotReady";
cudaerror[803] = "cudaErrorSystemDriverMismatch";
cudaerror[804] = "cudaErrorCompatNotSupportedOnDevice";
cudaerror[805] = "cudaErrorMpsConnectionFailed";
cudaerror[806] = "cudaErrorMpsRpcFailure";
cudaerror[807] = "cudaErrorMpsServerNotReady";
cudaerror[808] = "cudaErrorMpsMaxClientsReached";
cudaerror[809] = "cudaErrorMpsMaxConnectionsReached";
cudaerror[810] = "cudaErrorMpsClientTerminated";
cudaerror[811] = "cudaErrorCdpNotSupported";
cudaerror[812] = "cudaErrorCdpVersionMismatch";
cudaerror[900] = "cudaErrorStreamCaptureUnsupported";
cudaerror[901] = "cudaErrorStreamCaptureInvalidated";
cudaerror[902] = "cudaErrorStreamCaptureMerge";
cudaerror[903] = "cudaErrorStreamCaptureUnmatched";
cudaerror[904] = "cudaErrorStreamCaptureUnjoined";
cudaerror[905] = "cudaErrorStreamCaptureIsolation";
cudaerror[906] = "cudaErrorStreamCaptureImplicit";
cudaerror[907] = "cudaErrorCapturedEvent";
cudaerror[908] = "cudaErrorStreamCaptureWrongThread";
cudaerror[909] = "cudaErrorTimeout";
cudaerror[910] = "cudaErrorGraphExecUpdateFailure";
cudaerror[911] = "cudaErrorExternalDevice";
cudaerror[912] = "cudaErrorInvalidClusterSize";
cudaerror[999] = "cudaErrorUnknown";
cudaerror[10000] = "cudaErrorApiFailureBase";
return cudaerror[errornum];
Map<Integer, String> cudaerror = new HashMap<>();
cudaerror.put(0, "cudaSuccess");
cudaerror.put(1, "cudaErrorInvalidValue");
cudaerror.put(2, "cudaErrorMemoryAllocation");
cudaerror.put(3, "cudaErrorInitializationError");
cudaerror.put(4, "cudaErrorCudartUnloading");
cudaerror.put(5, "cudaErrorProfilerDisabled");
cudaerror.put(6, "cudaErrorProfilerNotInitialized");
cudaerror.put(7, "cudaErrorProfilerAlreadyStarted");
cudaerror.put(8, "cudaErrorProfilerAlreadyStopped");
cudaerror.put(9, "cudaErrorInvalidConfiguration");
cudaerror.put(12, "cudaErrorInvalidPitchValue");
cudaerror.put(13, "cudaErrorInvalidSymbol");
cudaerror.put(16, "cudaErrorInvalidHostPointer");
cudaerror.put(17, "cudaErrorInvalidDevicePointer");
cudaerror.put(18, "cudaErrorInvalidTexture");
cudaerror.put(19, "cudaErrorInvalidTextureBinding");
cudaerror.put(20, "cudaErrorInvalidChannelDescriptor");
cudaerror.put(21, "cudaErrorInvalidMemcpyDirection");
cudaerror.put(22, "cudaErrorAddressOfConstant");
cudaerror.put(23, "cudaErrorTextureFetchFailed");
cudaerror.put(24, "cudaErrorTextureNotBound");
cudaerror.put(25, "cudaErrorSynchronizationError");
cudaerror.put(26, "cudaErrorInvalidFilterSetting");
cudaerror.put(27, "cudaErrorInvalidNormSetting");
cudaerror.put(28, "cudaErrorMixedDeviceExecution");
cudaerror.put(31, "cudaErrorNotYetImplemented");
cudaerror.put(32, "cudaErrorMemoryValueTooLarge");
cudaerror.put(34, "cudaErrorStubLibrary");
cudaerror.put(35, "cudaErrorInsufficientDriver");
cudaerror.put(36, "cudaErrorCallRequiresNewerDriver");
cudaerror.put(37, "cudaErrorInvalidSurface");
cudaerror.put(43, "cudaErrorDuplicateVariableName");
cudaerror.put(44, "cudaErrorDuplicateTextureName");
cudaerror.put(45, "cudaErrorDuplicateSurfaceName");
cudaerror.put(46, "cudaErrorDevicesUnavailable");
cudaerror.put(49, "cudaErrorIncompatibleDriverContext");
cudaerror.put(52, "cudaErrorMissingConfiguration");
cudaerror.put(53, "cudaErrorPriorLaunchFailure");
cudaerror.put(65, "cudaErrorLaunchMaxDepthExceeded");
cudaerror.put(66, "cudaErrorLaunchFileScopedTex");
cudaerror.put(67, "cudaErrorLaunchFileScopedSurf");
cudaerror.put(68, "cudaErrorSyncDepthExceeded");
cudaerror.put(69, "cudaErrorLaunchPendingCountExceeded");
cudaerror.put(98, "cudaErrorInvalidDeviceFunction");
cudaerror.put(100, "cudaErrorNoDevice");
cudaerror.put(101, "cudaErrorInvalidDevice");
cudaerror.put(102, "cudaErrorDeviceNotLicensed");
cudaerror.put(103, "cudaErrorSoftwareValidityNotEstablished");
cudaerror.put(127, "cudaErrorStartupFailure");
cudaerror.put(200, "cudaErrorInvalidKernelImage");
cudaerror.put(201, "cudaErrorDeviceUninitialized");
cudaerror.put(205, "cudaErrorMapBufferObjectFailed");
cudaerror.put(206, "cudaErrorUnmapBufferObjectFailed");
cudaerror.put(207, "cudaErrorArrayIsMapped");
cudaerror.put(208, "cudaErrorAlreadyMapped");
cudaerror.put(209, "cudaErrorNoKernelImageForDevice");
cudaerror.put(210, "cudaErrorAlreadyAcquired");
cudaerror.put(211, "cudaErrorNotMapped");
cudaerror.put(212, "cudaErrorNotMappedAsArray");
cudaerror.put(213, "cudaErrorNotMappedAsPointer");
cudaerror.put(214, "cudaErrorECCUncorrectable");
cudaerror.put(215, "cudaErrorUnsupportedLimit");
cudaerror.put(216, "cudaErrorDeviceAlreadyInUse");
cudaerror.put(217, "cudaErrorPeerAccessUnsupported");
cudaerror.put(218, "cudaErrorInvalidPtx");
cudaerror.put(219, "cudaErrorInvalidGraphicsContext");
cudaerror.put(220, "cudaErrorNvlinkUncorrectable");
cudaerror.put(221, "cudaErrorJitCompilerNotFound");
cudaerror.put(222, "cudaErrorUnsupportedPtxVersion");
cudaerror.put(223, "cudaErrorJitCompilationDisabled");
cudaerror.put(224, "cudaErrorUnsupportedExecAffinity");
cudaerror.put(225, "cudaErrorUnsupportedDevSideSync");
cudaerror.put(300, "cudaErrorInvalidSource");
cudaerror.put(301, "cudaErrorFileNotFound");
cudaerror.put(302, "cudaErrorSharedObjectSymbolNotFound");
cudaerror.put(303, "cudaErrorSharedObjectInitFailed");
cudaerror.put(304, "cudaErrorOperatingSystem");
cudaerror.put(400, "cudaErrorInvalidResourceHandle");
cudaerror.put(401, "cudaErrorIllegalState");
cudaerror.put(402, "cudaErrorLossyQuery");
cudaerror.put(500, "cudaErrorSymbolNotFound");
cudaerror.put(600, "cudaErrorNotReady");
cudaerror.put(700, "cudaErrorIllegalAddress");
cudaerror.put(701, "cudaErrorLaunchOutOfResources");
cudaerror.put(702, "cudaErrorLaunchTimeout");
cudaerror.put(703, "cudaErrorLaunchIncompatibleTexturing");
cudaerror.put(704, "cudaErrorPeerAccessAlreadyEnabled");
cudaerror.put(705, "cudaErrorPeerAccessNotEnabled");
cudaerror.put(708, "cudaErrorSetOnActiveProcess");
cudaerror.put(709, "cudaErrorContextIsDestroyed");
cudaerror.put(710, "cudaErrorAssert");
cudaerror.put(711, "cudaErrorTooManyPeers");
cudaerror.put(712, "cudaErrorHostMemoryAlreadyRegistered");
cudaerror.put(713, "cudaErrorHostMemoryNotRegistered");
cudaerror.put(714, "cudaErrorHardwareStackError");
cudaerror.put(715, "cudaErrorIllegalInstruction");
cudaerror.put(716, "cudaErrorMisalignedAddress");
cudaerror.put(717, "cudaErrorInvalidAddressSpace");
cudaerror.put(718, "cudaErrorInvalidPc");
cudaerror.put(719, "cudaErrorLaunchFailure");
cudaerror.put(720, "cudaErrorCooperativeLaunchTooLarge");
cudaerror.put(800, "cudaErrorNotPermitted");
cudaerror.put(801, "cudaErrorNotSupported");
cudaerror.put(802, "cudaErrorSystemNotReady");
cudaerror.put(803, "cudaErrorSystemDriverMismatch");
cudaerror.put(804, "cudaErrorCompatNotSupportedOnDevice");
cudaerror.put(805, "cudaErrorMpsConnectionFailed");
cudaerror.put(806, "cudaErrorMpsRpcFailure");
cudaerror.put(807, "cudaErrorMpsServerNotReady");
cudaerror.put(808, "cudaErrorMpsMaxClientsReached");
cudaerror.put(809, "cudaErrorMpsMaxConnectionsReached");
cudaerror.put(810, "cudaErrorMpsClientTerminated");
cudaerror.put(811, "cudaErrorCdpNotSupported");
cudaerror.put(812, "cudaErrorCdpVersionMismatch");
cudaerror.put(900, "cudaErrorStreamCaptureUnsupported");
cudaerror.put(901, "cudaErrorStreamCaptureInvalidated");
cudaerror.put(902, "cudaErrorStreamCaptureMerge");
cudaerror.put(903, "cudaErrorStreamCaptureUnmatched");
cudaerror.put(904, "cudaErrorStreamCaptureUnjoined");
cudaerror.put(905, "cudaErrorStreamCaptureIsolation");
cudaerror.put(906, "cudaErrorStreamCaptureImplicit");
cudaerror.put(907, "cudaErrorCapturedEvent");
cudaerror.put(908, "cudaErrorStreamCaptureWrongThread");
cudaerror.put(909, "cudaErrorTimeout");
cudaerror.put(910, "cudaErrorGraphExecUpdateFailure");
cudaerror.put(911, "cudaErrorExternalDevice");
cudaerror.put(912, "cudaErrorInvalidClusterSize");
cudaerror.put(999, "cudaErrorUnknown");
cudaerror.put(10000, "cudaErrorApiFailureBase");
if (cudaerror.containsKey(errornum)) {
return cudaerror.get(errornum);
}
else {
return "Unknown(" + errornum + ")";
}
}
@Override public List<GPUDevice> getGpus() {