GPU 上的分面搜索和热图创建
Faceted search and heat map creation on GPU
我正在尝试寻找方法来实时过滤和渲染 1 亿多个数据点作为热图。
除 (x,y) 坐标外,每个点都有一组固定的属性(整数、日期、位标志),用户可以动态选择这些属性以过滤数据集。
在 GPU 上加速此任务的全部或部分是否可行?
当然,这是适合 GPGPU 范围的问题。
您可以决定创建自己的内核来过滤您的数据,或者为此目的简单地使用供应商库的某些功能。您可能会规范化、插值等,这些都是这些库中的常用实用程序。这些类型的函数通常是令人尴尬的并行,创建自己的内核应该不难。
我宁愿使用允许您实时过滤和可视化数据的可视化框架。 Vispy 是一个很好的选择,当然,还有其他一些选择。
如果您更具体一些会有所帮助,但我假设您想将用户指定的过滤器应用于 相同 二维空间数据。如果是这种情况,您可以考虑将数据组织成空间数据结构,例如 Quadtree 或 K-d 树。
完成此操作后,您可以根据要应用的过滤器 运行 为数据结构中的每个区域创建一个 GPU 内核。每个线程将找出其区域中的哪些点满足指定的过滤器。
我正在尝试寻找方法来实时过滤和渲染 1 亿多个数据点作为热图。
除 (x,y) 坐标外,每个点都有一组固定的属性(整数、日期、位标志),用户可以动态选择这些属性以过滤数据集。
在 GPU 上加速此任务的全部或部分是否可行?
当然,这是适合 GPGPU 范围的问题。
您可以决定创建自己的内核来过滤您的数据,或者为此目的简单地使用供应商库的某些功能。您可能会规范化、插值等,这些都是这些库中的常用实用程序。这些类型的函数通常是令人尴尬的并行,创建自己的内核应该不难。
我宁愿使用允许您实时过滤和可视化数据的可视化框架。 Vispy 是一个很好的选择,当然,还有其他一些选择。
如果您更具体一些会有所帮助,但我假设您想将用户指定的过滤器应用于 相同 二维空间数据。如果是这种情况,您可以考虑将数据组织成空间数据结构,例如 Quadtree 或 K-d 树。
完成此操作后,您可以根据要应用的过滤器 运行 为数据结构中的每个区域创建一个 GPU 内核。每个线程将找出其区域中的哪些点满足指定的过滤器。