aurel333 commented on a change in pull request #6412:
URL: https://github.com/apache/incubator-tvm/pull/6412#discussion_r486888553



##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?

##########
File path: src/runtime/opencl/opencl_common.h
##########
@@ -216,7 +216,8 @@ class OpenCLWorkspace : public DeviceAPI {
   // Initialzie the device.
   void Init(const std::string& type_key, const std::string& device_type,
             const std::string& platform_name = "");
-  virtual void Init() { Init("opencl", "gpu"); }
+  // Find accelerator first, TODO: Make a proper way to chose between device 
types
+  virtual void Init() { Init("opencl", "accelerator"); }

Review comment:
       I agree there needs to have a discussion. I think that putting 
accelerator in the default OpenCL is a necessity because it will allow people 
who use custom or currently unsupported accelerators to use TVM easily. However 
because it will use CUDA schedules, the performances may suffer so maybe 
putting accelerators with a low priority would be better.
   
   At the end, the present system is in my opinion flawed because it does not 
let the user chose which type of device to prioritize for OpenCL. Maybe we 
should split the current OpenCL target to three (or four with custom?) targets 
like "opencl-cpu", "opencl-gpu" and "opencl-accelerator". Or we could use a 
target attribute to do it. What do you think about it?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to