srkreddy1238 commented on code in PR #15058:
URL: https://github.com/apache/tvm/pull/15058#discussion_r1352416290
##########
src/runtime/opencl/opencl_device_api.cc:
##########
@@ -269,36 +430,32 @@ void OpenCLWorkspace::FreeDataSpace(Device dev, void*
ptr) {
OPENCL_CALL(clFinish(this->GetQueue(dev)));
cl::BufferDescriptor* desc = static_cast<cl::BufferDescriptor*>(ptr);
- if (desc->host_ptr) {
- clEnqueueUnmapMemObject(this->GetQueue(dev), desc->buffer,
- reinterpret_cast<void*>(desc->host_ptr), 0,
nullptr, nullptr);
- }
- OPENCL_CALL(clReleaseMemObject(desc->buffer));
- delete desc;
-}
-cl_mem OpenCLWorkspace::AllocTexture(Device dev, size_t width, size_t height,
- DLDataType type_hint) {
- this->Init();
- cl_device_id device_id = GetCLDeviceID(dev.device_id);
- auto platform = device_to_platform[device_id];
- cl_int err_code;
- cl_channel_type cl_type = DTypeToOpenCLChannelType(type_hint);
- cl_image_format format = {CL_RGBA, cl_type};
- cl_image_desc descriptor = {CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0,
0, 0, 0};
- cl_mem mptr = clCreateImage(this->contexts[platform], CL_MEM_CREATE_FLAGS,
&format, &descriptor,
- nullptr, &err_code);
- OPENCL_CHECK_ERROR(err_code);
- return mptr;
-}
-
-void* OpenCLWorkspace::AllocTextureWorkspace(Device dev, size_t width, size_t
height,
- DLDataType type_hint) {
- return GetThreadEntry()->texture_pool.AllocTexture(dev, width, height,
type_hint);
-}
-
-void OpenCLWorkspace::FreeTextureWorkspace(Device dev, void* ptr) {
- GetThreadEntry()->texture_pool.FreeTexture(dev, ptr);
+ if (desc->back_buffer) {
+ // 2D Image w/ back buffer allocated from pool
+ OPENCL_CALL(clReleaseMemObject(desc->buffer));
+ // GetThreadEntry()->mpool.FreeMemory(dev, desc->back_buffer);
Review Comment:
Missed it while rebasing. Will remove.
##########
src/runtime/opencl/opencl_device_api.cc:
##########
@@ -269,36 +430,32 @@ void OpenCLWorkspace::FreeDataSpace(Device dev, void*
ptr) {
OPENCL_CALL(clFinish(this->GetQueue(dev)));
cl::BufferDescriptor* desc = static_cast<cl::BufferDescriptor*>(ptr);
- if (desc->host_ptr) {
- clEnqueueUnmapMemObject(this->GetQueue(dev), desc->buffer,
- reinterpret_cast<void*>(desc->host_ptr), 0,
nullptr, nullptr);
- }
- OPENCL_CALL(clReleaseMemObject(desc->buffer));
- delete desc;
-}
-cl_mem OpenCLWorkspace::AllocTexture(Device dev, size_t width, size_t height,
- DLDataType type_hint) {
- this->Init();
- cl_device_id device_id = GetCLDeviceID(dev.device_id);
- auto platform = device_to_platform[device_id];
- cl_int err_code;
- cl_channel_type cl_type = DTypeToOpenCLChannelType(type_hint);
- cl_image_format format = {CL_RGBA, cl_type};
- cl_image_desc descriptor = {CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0,
0, 0, 0};
- cl_mem mptr = clCreateImage(this->contexts[platform], CL_MEM_CREATE_FLAGS,
&format, &descriptor,
- nullptr, &err_code);
- OPENCL_CHECK_ERROR(err_code);
- return mptr;
-}
-
-void* OpenCLWorkspace::AllocTextureWorkspace(Device dev, size_t width, size_t
height,
- DLDataType type_hint) {
- return GetThreadEntry()->texture_pool.AllocTexture(dev, width, height,
type_hint);
-}
-
-void OpenCLWorkspace::FreeTextureWorkspace(Device dev, void* ptr) {
- GetThreadEntry()->texture_pool.FreeTexture(dev, ptr);
+ if (desc->back_buffer) {
+ // 2D Image w/ back buffer allocated from pool
+ OPENCL_CALL(clReleaseMemObject(desc->buffer));
+ // GetThreadEntry()->mpool.FreeMemory(dev, desc->back_buffer);
+ MemoryManager::GetAllocator(dev, desc->back_buffer->mbuf.alloc_type)
+ ->Free(desc->back_buffer->mbuf);
+ delete desc;
+ } else {
+ if (desc->layout == cl::BufferDescriptor::MemoryLayout::kBuffer1D) {
+ // 1D buffer allocated from pool
+ // GetThreadEntry()->mpool.FreeMemory(dev, desc);
Review Comment:
I will remove
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]