namespace saw { namespace impl { template struct hip_copy_to_device { static error_or apply(data& from, data** to){ static_assert(always_false, "Unsupported case."); return make_void(); } }; template struct hip_copy_to_device, Encoding> { using Schema = schema::Primitive; static error_or apply(data& from, data** to){ hipError_t malloc_err = hipMalloc(to, sizeof(data)); // HIP_CHECK(malloc_err); hipError_t copy_err = hipMemcpy(*to, &from, sizeof(data), hipMemcpyHostToDevice); // HIP_CHECK(copy_err); return make_void(); } }; } }