void LoaderContext::ProgramGlobalFree(void *ptr, size_t size) { assert(ptr); assert(size); hsa_memory_deregister(ptr, size); alc_aligned_free(ptr); }
void free_buf(hsa_buf* buf) { if(!buf || !buf->ptr) { return; } if(buf->is_registered) { hsa_memory_deregister(buf->ptr, buf->size); } free(buf->ptr); buf->ptr = NULL; buf->size = 0; }
void LoaderContext::KernelCodeFree(void *ptr, size_t size) { assert(ptr); assert(size); hsa_memory_deregister(ptr, size); #if defined(_WIN32) || defined(_WIN64) VirtualFree(ptr, size, MEM_DECOMMIT); VirtualFree(ptr, 0, MEM_RELEASE); #else munmap(ptr, size); #endif }