#include "megbrain/test/megdnn_helper.h"
#include "megbrain/common.h"
#define MEGCORE_CHECK(expr) \
do { \
auto _code = expr; \
mgb_assert(_code == megcoreSuccess); \
} while (0)
namespace {
struct MegDNNHandleBundle {
std::unique_ptr<megdnn::Handle> handle;
megcoreDeviceHandle_t dev_hdl;
megcoreComputingHandle_t comp_hdl;
MegDNNHandleBundle() {
MEGCORE_CHECK(megcoreCreateDeviceHandle(&dev_hdl, megcorePlatformCPU));
MEGCORE_CHECK(megcoreCreateComputingHandle(&comp_hdl, dev_hdl));
handle = megdnn::Handle::make(comp_hdl, 2);
}
~MegDNNHandleBundle() {
MEGCORE_CHECK(megcoreDestroyComputingHandle(comp_hdl));
MEGCORE_CHECK(megcoreDestroyDeviceHandle(dev_hdl));
}
};
}
megdnn::Handle* mgb::megdnn_naive_handle() {
static MegDNNHandleBundle handle;
return handle.handle.get();
}