docs: public static Nd4jEnvironment getEnvironment() {
          Properties envInfo = Nd4j.getExecutioner().getEnvironmentInformation();
          Nd4jEnvironment ret = Nd4jEnvironment.builder().numCores(getIntOrZero(CPU_CORES_KEY, envInfo))
                          .ram(getLongOrZero(HOST_TOTAL_MEMORY_KEY, envInfo)).os(envInfo.get(OS_KEY).toString())
                          .blasVendor(envInfo.get(BLAS_VENDOR_KEY).toString())
                          .blasThreads(getLongOrZero(BLAS_THREADS_KEY, envInfo))
                          .ompThreads(getIntOrZero(OMP_THREADS_KEY, envInfo))
                          .numGpus(getIntOrZero(CUDA_NUM_GPUS_KEY, envInfo)).build();
          if (envInfo.containsKey(CUDA_DEVICE_INFORMATION_KEY)) {
              List<Map<String, Object>> deviceInfo = (List<Map<String, Object>>) envInfo.get(CUDA_DEVICE_INFORMATION_KEY);
              List<Long> gpuRam = new ArrayList<>();
              for (Map<String, Object> info : deviceInfo) {
                  gpuRam.add(Long.parseLong(info.get(Nd4jEnvironment.CUDA_TOTAL_MEMORY_KEY).toString()));
              }
  
              ret.setGpuRam(gpuRam);
          }
  
  
          return ret;
  
      }