Lines Matching refs:dctx

93   static PetscErrorCode initialize_handle_(blas_tag, PetscDeviceContext dctx) noexcept  in initialize_handle_()  argument
95 const auto dci = impls_cast_(dctx); in initialize_handle_()
96 auto &handle = blashandles_[dctx->device->deviceId]; in initialize_handle_()
120 static PetscErrorCode initialize_handle_(solver_tag, PetscDeviceContext dctx) noexcept in initialize_handle_() argument
122 const auto dci = impls_cast_(dctx); in initialize_handle_()
123 auto &handle = solverhandles_[dctx->device->deviceId]; in initialize_handle_()
160 …orCode check_current_device_(PetscDeviceContext dctx) noexcept { return check_current_device_(dctx in check_current_device_() argument
280 inline PetscErrorCode DeviceContext<T>::destroy(PetscDeviceContext dctx) noexcept in destroy() argument
283 if (const auto dci = impls_cast_(dctx)) { in destroy()
289 dctx->data = nullptr; in destroy()
295 inline PetscErrorCode DeviceContext<T>::changeStreamType(PetscDeviceContext dctx, PETSC_UNUSED Pets… in changeStreamType() argument
297 const auto dci = impls_cast_(dctx); in changeStreamType()
308 inline PetscErrorCode DeviceContext<T>::setUp(PetscDeviceContext dctx) noexcept in setUp() argument
310 const auto dci = impls_cast_(dctx); in setUp()
314 PetscCall(check_current_device_(dctx)); in setUp()
315 PetscCall(dci->stream.change_type(dctx->streamType)); in setUp()
324 inline PetscErrorCode DeviceContext<T>::query(PetscDeviceContext dctx, PetscBool *idle) noexcept in query() argument
327 PetscCall(check_current_device_(dctx)); in query()
328 switch (auto cerr = cupmStreamQuery(impls_cast_(dctx)->stream.get_stream())) { in query()
359 inline PetscErrorCode DeviceContext<T>::synchronize(PetscDeviceContext dctx) noexcept in synchronize() argument
364 PetscCall(query(dctx, &idle)); in synchronize()
365 if (!idle) PetscCallCUPM(cupmStreamSynchronize(impls_cast_(dctx)->stream.get_stream())); in synchronize()
371 inline PetscErrorCode DeviceContext<T>::getHandle(PetscDeviceContext dctx, void *handle) noexcept in getHandle() argument
374 PetscCall(initialize_handle_(handle_t{}, dctx)); in getHandle()
375 *static_cast<typename handle_t::type *>(handle) = impls_cast_(dctx)->get(handle_t{}); in getHandle()
381 inline PetscErrorCode DeviceContext<T>::getHandlePtr(PetscDeviceContext dctx, void **handle) noexce… in getHandlePtr() argument
386 PetscCall(initialize_handle_(handle_t{}, dctx)); in getHandlePtr()
387 …e_type **>(handle) = const_cast<handle_type *>(std::addressof(impls_cast_(dctx)->get(handle_t{}))); in getHandlePtr()
392 inline PetscErrorCode DeviceContext<T>::beginTimer(PetscDeviceContext dctx) noexcept in beginTimer() argument
394 const auto dci = impls_cast_(dctx); in beginTimer()
397 PetscCall(check_current_device_(dctx)); in beginTimer()
412 inline PetscErrorCode DeviceContext<T>::endTimer(PetscDeviceContext dctx, PetscLogDouble *elapsed) … in endTimer() argument
415 const auto dci = impls_cast_(dctx); in endTimer()
419 PetscCall(check_current_device_(dctx)); in endTimer()
433 inline PetscErrorCode DeviceContext<T>::getPower(PetscDeviceContext dctx, PetscLogDouble *power) no… in getPower() argument
435 const auto dci = impls_cast_(dctx); in getPower()
439 PetscCall(check_current_device_(dctx)); in getPower()
442 …if (!dci->nvmlHandle) PetscCallNVML(nvmlDeviceGetHandleByIndex(dctx->device->deviceId, &dci->nvmlH… in getPower()
451 inline PetscErrorCode DeviceContext<T>::beginEnergyMeter(PetscDeviceContext dctx) noexcept in beginEnergyMeter() argument
453 const auto dci = impls_cast_(dctx); in beginEnergyMeter()
456 PetscCall(check_current_device_(dctx)); in beginEnergyMeter()
461 …if (!dci->nvmlHandle) PetscCallNVML(nvmlDeviceGetHandleByIndex(dctx->device->deviceId, &dci->nvmlH… in beginEnergyMeter()
467 inline PetscErrorCode DeviceContext<T>::endEnergyMeter(PetscDeviceContext dctx, PetscLogDouble *ene… in endEnergyMeter() argument
469 const auto dci = impls_cast_(dctx); in endEnergyMeter()
472 PetscCall(check_current_device_(dctx)); in endEnergyMeter()
485 inline PetscErrorCode DeviceContext<T>::memAlloc(PetscDeviceContext dctx, PetscBool clear, PetscMem… in memAlloc() argument
487 const auto &stream = impls_cast_(dctx)->stream; in memAlloc()
490 PetscCall(check_current_device_(dctx)); in memAlloc()
502 inline PetscErrorCode DeviceContext<T>::memFree(PetscDeviceContext dctx, PetscMemType mtype, void *… in memFree() argument
504 const auto &stream = impls_cast_(dctx)->stream; in memFree()
507 PetscCall(check_current_device_(dctx)); in memFree()
532 inline PetscErrorCode DeviceContext<T>::memCopy(PetscDeviceContext dctx, void *PETSC_RESTRICT dest,… in memCopy() argument
534 const auto stream = impls_cast_(dctx)->stream.get_stream(); in memCopy()
558 inline PetscErrorCode DeviceContext<T>::memSet(PetscDeviceContext dctx, PetscMemType mtype, void *p… in memSet() argument
561 PetscCall(check_current_device_(dctx)); in memSet()
563 …PetscCallCUPM(cupmMemsetAsync(ptr, static_cast<int>(v), n, impls_cast_(dctx)->stream.get_stream())… in memSet()
582 inline PetscErrorCode DeviceContext<T>::recordEvent(PetscDeviceContext dctx, PetscEvent event) noex… in recordEvent() argument
585 PetscCall(impls_cast_(dctx)->stream.record_event(*event_cast_(event))); in recordEvent()
590 inline PetscErrorCode DeviceContext<T>::waitForEvent(PetscDeviceContext dctx, PetscEvent event) noe… in waitForEvent() argument
593 PetscCall(impls_cast_(dctx)->stream.wait_for_event(*event_cast_(event))); in waitForEvent()