-
Notifications
You must be signed in to change notification settings - Fork 162
Home
KaiGai Kohei edited this page Nov 21, 2017
·
29 revisions
- Planned feature freeze Mid of Jan-2018.
- In-memory Columnar Cache
- It allows to cache PostgreSQL blocks on memory with conversion to columnar-format; for reduction of data transfer to GPU device, and for optimization of memory bus of GPU devices.
- BRIN index support on GpuScan
- Test cases
- RPM towards PGDG community package
- Documentation update
- CUDA Infrastructure Renew (done)
- New GpuContext infrastructure (done)
- Use of sync methods + worker threads, instead of CUDA async methods. It makes error handling and retry cases much simpler, and also make resource consumption under the control.
- Update of GpuScan (done)
- Update of GpuJoin (done)
- Update of GpuPreAgg (done)
- New GpuContext infrastructure (done)
- Based on PostgreSQL v9.6 (done)
- CPU+GPU Hybrid Parallelism (done)
- Support of the new planner structure (done)
- Support of PostgreSQL v10 (done)
- SSD-to-GPU Direct SQL Execution (done)
- Cooperation with nvme-strom kernel module enables P2P DMA of SSD blocks to GPU RAM, then PG-Strom runs SQL workloads on GPU as usual. It pulls out almost wired performance of NVMe-SSD
- GpuPreAgg + GpuJoin + GpuScan combined kernel (done)
- Utilization of demand paging on GPU device memory (done)
- Minimum required CC raised to 6.0 (Pascal) from 3.5
- FDW of persistent GPU device memory (done)
- Incremental improvements
- Support of PostgreSQL v11
- Basic PostGIS support
- OnSSD row2column conversion
- Automatic PCIe topology optimization
- Incremental improvement
- Usability, Quality, Performance, ...
- ...and any ideas?
- Based on PostgreSQL v9.5
- Dynamic Parallelism Adoption (done)
- CPU Fallback of GpuJoin (done)
- GpuSort reworks (done)
- LIKE operator support (done)
- Official Documentation (done)
- Regression Tests (postpone)
- RPM Package (done)
- COALESCE, GREATEST, LEAST operators (done)
- ScalarArrayOp operators (done)
- PL/CUDA support and Matrix/Vector data type (done)
- OpenCL support
- Former version of PG-Strom once tried to use OpenCL as an infrastructure of GPU devices. However, software quality of device driver by some vendors is not sufficient. It was hard to maintain kernel code that is workable on multiple vendors/devices, even though people expect application will work any GPU devices.
- Time lag of edge features getting available, like dynamic parallelism, unified virtual memory and so on.
- I want to forget the nightmare when I debugged the OpenCL code.
- Scale-out parallel
- PG-Strom is designed to an extension of PostgreSQL, so it allows cooperation with other solutions; including scale-out parallel query execution, like CitusDB. So, we don't develop scale-out solution by ourself.
- Other RDBMS support
- Any RDBMS will be eventually replaced by PostgreSQL. :-)
- Theoretically, it is possible to implement equivalent features for Oracle, MySQL, SQL Server, and so on. However, PG-Strom's internal structure and interface to interact with core RDBMS fully depend on PostgreSQL internals. Probably, it is hard to maintain the code.