MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / make_raw

Method make_raw

dnn/src/common/tensor_format.cpp:600–618  ·  view source on GitHub ↗

===================== Image2DPack4TensorFormat ===================== */

Source from the content-addressed store, hash-verified

598
599/* ===================== Image2DPack4TensorFormat ===================== */
600TensorFormat Image2DPack4TensorFormat::make_raw(
601 size_t align_axis, size_t align_size_in_elements,
602 Handle::HandleVendorType vendor_type) {
603 static DNN_MUTEX mtx;
604 static std::unordered_map<uint64_t, std::unique_ptr<Image2DPack4TensorFormat>>
605 cache;
606 megdnn_assert(
607 std::max(align_axis, align_size_in_elements) <=
608 std::numeric_limits<uint32_t>::max());
609 MEGDNN_LOCK_GUARD(mtx);
610 auto key = (static_cast<uint64_t>(align_axis) << 32) |
611 align_size_in_elements << 16 | (static_cast<size_t>(vendor_type));
612 auto&& ptr = cache[key];
613 if (!ptr) {
614 ptr.reset(new Image2DPack4TensorFormat{
615 align_axis, align_size_in_elements, vendor_type});
616 }
617 return impl_to_tensor_format(ptr.get());
618}
619
620TensorFormat Image2DPack4TensorFormat::make(size_t align_axis, const Handle* handle) {
621 return make_raw(

Callers

nothing calls this directly

Calls 3

maxFunction · 0.85
resetMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected