コード例 #1
0
ファイル: dyn_load.c プロジェクト: tsirif/libgpuarray
static inline void error_win(error *e) {
  char msgbuf[512];
  DWORD err = GetLastError();
  DWORD len = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM|
                             FORMAT_MESSAGE_IGNORE_INSERTS,
                             NULL, err, 0, msgbuf, 512, NULL);
  if (len == 0)
    error_fmt(e, GA_LOAD_ERROR, "Could not load \"%s\": error code %X", name, err);
  else
    error_fmt(e, GA_LOAD_ERROR, "Could not load \"%s\": %s", name, msgbuf);
}
コード例 #2
0
ファイル: gpuarray_buffer.c プロジェクト: Theano/libgpuarray
int gpucontext_props_sched(gpucontext_props *p, int sched) {
  switch (sched) {
  case GA_CTX_SCHED_MULTI:
  case GA_CTX_SCHED_AUTO:
  case GA_CTX_SCHED_SINGLE:
    p->sched = sched;
    break;
  default:
    return error_fmt(global_err, GA_INVALID_ERROR, "Invalid value for sched: %d", sched);
  }

  if (sched == GA_CTX_SCHED_MULTI)
    FLSET(p->flags, GA_CTX_MULTI_THREAD);
  else
    FLCLR(p->flags, GA_CTX_MULTI_THREAD);

  return GA_NO_ERROR;
}
コード例 #3
0
static inline int error_clblast(error *e, const char *msg,
                                CLBlastStatusCode err) {
  return error_fmt(e, GA_BLAS_ERROR, "%s: %s", msg, estr(err));
}
コード例 #4
0
ファイル: dyn_load.c プロジェクト: tsirif/libgpuarray
void *ga_func_ptr(void *h, const char *name, error *e) {
  void *res = dlsym(h, name);
  if (res == NULL)
    error_fmt(e, GA_LOAD_ERROR, "Could not find synbol \"%s\": %s", name, dlerror());
  return res;
}
コード例 #5
0
ファイル: dyn_load.c プロジェクト: tsirif/libgpuarray
void *ga_load_library(const char *name, error *e) {
  void *res = dlopen(name, RTLD_LAZY|RTLD_LOCAL);
  if (res == NULL)
    error_fmt(e, GA_LOAD_ERROR, "Could not load \"%s\": %s", name, dlerror());
  return res;
}
コード例 #6
0
static inline int error_nccl(error *e, const char *msg, ncclResult_t err) {
  return error_fmt(e, GA_COMM_ERROR, "%s: %s", msg, ncclGetErrorString(err));
}