> On Thu, Nov 17, 2016 at 7:09 PM, Mark Anns <aishwaryaanns@xxxxxxxxx> wrote: > > Can u explain this statement "check whether the scan qualifier can be > > executable on GPU device" > > > > What are the scan qualifiers? > > > > How to determine whether they are device executable or not? > > > > The cost estimates are entirely based on number of rows and type of scan. > > Then it will be same for both CPU and GPU. How the decision can be > > made for cheaper one comparing CPU and GPU estimates? > > There is a parameter (call it a "factor" if you will) called cpu_tuple_cost > (section 19.7.2 Planner Cost Constants in the PostgreSQL documentation; > link at the bottom), which "sets the planner's estimate of the cost of > processing each row during a query" > as the description on that page says. > > With that as the unit of cost of processing rows using the CPU and considering > any differences in the processing capabilities between CPU and GPU, the > optimizer code will cost the portion of plan that will be processed by the > GPU (typically a table scan or a join) as some fraction of the cost of > executing the same portion of the plan using the traditional CPU processing. > > (Kaigai-san will be better able to explain and correct if the above rough > sketch is not exactly accurate) > It is right introduction. PG-Strom assumes GPU can run functions/operators within scan qualifier more effectively than CPU, but has more startup cost (const) and extra data copy via PCI-E bus (another factor based on width x num rows). These factor makes differences in the cost of individual scan/join paths, then planner will choose the appropriate one. Thanks, ---- PG-Strom Project / NEC OSS Promotion Center KaiGai Kohei <kaigai@xxxxxxxxxxxxx> -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general