Skip to content

Commit

Permalink
Merge pull request #444 from rapidsai/branch-23.02
Browse files Browse the repository at this point in the history
[RELEASE] cuxfilter v23.02
  • Loading branch information
raydouglass authored Feb 9, 2023
2 parents e130bb4 + 1a1e0c3 commit e31798b
Show file tree
Hide file tree
Showing 46 changed files with 773 additions and 365 deletions.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ python/ @rapidsai/cuxfilter-python-codeowners
ci/ @rapidsai/ops-codeowners
conda/ @rapidsai/ops-codeowners
**/Dockerfile @rapidsai/ops-codeowners
**/.dockerignore @rapidsai/ops-codeowners
**/.dockerignore @rapidsai/ops-codeowners
dependencies.yaml @rapidsai/ops-codeowners
2 changes: 1 addition & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Python:
- 'python/**'
- 'notebooks/**'

gpuCI:
ci:
- 'ci/**'

conda:
Expand Down
2 changes: 2 additions & 0 deletions .github/ops-bot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ branch_checker: true
label_checker: true
release_drafter: true
external_contributors: false
copy_prs: true
recently_updated: true
56 changes: 56 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: build

on:
push:
branches:
- "branch-*"
tags:
- v[0-9][0-9].[0-9][0-9].[0-9][0-9]
workflow_dispatch:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string
build_type:
type: string
default: nightly

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
python-build:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
upload-conda:
needs: [python-build]
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
docs-build:
if: ${{ startsWith(github.ref, 'refs/heads/branch-') }}
needs: python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: branch
node_type: "gpu-latest-1"
arch: "amd64"
container_image: "rapidsai/ci:latest"
run_script: "ci/build_docs.sh"
57 changes: 57 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: pr

on:
push:
branches:
- "pull-request/[0-9]+"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
pr-builder:
needs:
- checks
- conda-python-build
- conda-python-tests
- conda-notebook-tests
- docs-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
checks:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
conda-python-build:
needs: checks
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
conda-python-tests:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
run_codecov: false
conda-notebook-tests:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
node_type: "gpu-latest-1"
arch: "amd64"
container_image: "rapidsai/ci:latest"
run_script: "ci/test_notebooks.sh"
docs-build:
needs: conda-python-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: pull-request
node_type: "gpu-latest-1"
arch: "amd64"
container_image: "rapidsai/ci:latest"
run_script: "ci/build_docs.sh"
24 changes: 24 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: test

on:
workflow_dispatch:
inputs:
branch:
required: true
type: string
date:
required: true
type: string
sha:
required: true
type: string

jobs:
conda-python-tests:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/[email protected]
with:
build_type: nightly
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
18 changes: 18 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright (c) 2019-2022, NVIDIA CORPORATION.

repos:
- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
files: python/cuxfilter/.*
# Explicitly specify the pyproject.toml at the repo root, not per-project.
args: ["--config", "pyproject.toml"]
- repo: https://github.com/PyCQA/flake8
rev: 6.0.0
hooks:
- id: flake8
args: ["--config=python/setup.cfg"]
files: python/.*$
default_language_version:
python: python3
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
# cuXfilter 23.02.00 (9 Feb 2023)

## 🐛 Bug Fixes

- fix path for dir to uploaded ([#437](https://github.com/rapidsai/cuxfilter/pull/437)) [@AjayThorve](https://github.com/AjayThorve)

## 📖 Documentation

- Docs/update ([#439](https://github.com/rapidsai/cuxfilter/pull/439)) [@AjayThorve](https://github.com/AjayThorve)
- Update channel priority ([#415](https://github.com/rapidsai/cuxfilter/pull/415)) [@bdice](https://github.com/bdice)

## 🚀 New Features

- Fea/add save chart option to individual charts ([#429](https://github.com/rapidsai/cuxfilter/pull/429)) [@AjayThorve](https://github.com/AjayThorve)

## 🛠️ Improvements

- Update shared workflow branches ([#442](https://github.com/rapidsai/cuxfilter/pull/442)) [@ajschmidt8](https://github.com/ajschmidt8)
- Add docs build to GH actions ([#436](https://github.com/rapidsai/cuxfilter/pull/436)) [@AjayThorve](https://github.com/AjayThorve)
- Re-enable `graphs.ipynb` notebook in CI ([#428](https://github.com/rapidsai/cuxfilter/pull/428)) [@ajschmidt8](https://github.com/ajschmidt8)
- Build CUDA 11.8 and Python 3.10 Packages ([#426](https://github.com/rapidsai/cuxfilter/pull/426)) [@bdice](https://github.com/bdice)
- Update workflows for nightly tests ([#425](https://github.com/rapidsai/cuxfilter/pull/425)) [@ajschmidt8](https://github.com/ajschmidt8)
- Enable `Recently Updated` Check ([#424](https://github.com/rapidsai/cuxfilter/pull/424)) [@ajschmidt8](https://github.com/ajschmidt8)
- remove stale cudatashader build commands ([#423](https://github.com/rapidsai/cuxfilter/pull/423)) [@AjayThorve](https://github.com/AjayThorve)
- Update style checks to use pre-commit. ([#420](https://github.com/rapidsai/cuxfilter/pull/420)) [@bdice](https://github.com/bdice)
- Fix broken symlink ([#419](https://github.com/rapidsai/cuxfilter/pull/419)) [@ajschmidt8](https://github.com/ajschmidt8)
- Add GitHub Actions Workflows ([#418](https://github.com/rapidsai/cuxfilter/pull/418)) [@ajschmidt8](https://github.com/ajschmidt8)
- Add dependencies.yaml ([#416](https://github.com/rapidsai/cuxfilter/pull/416)) [@AjayThorve](https://github.com/AjayThorve)

# cuXfilter 22.12.00 (8 Dec 2022)

## 📖 Documentation
Expand Down
9 changes: 3 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,10 @@ cd $CUXFILTER_HOME
- Create the conda development environment `cuxfilter_dev`:
```bash
# create the conda environment (assuming in base `cuxfilter` directory)
conda env create --name cuxfilter_dev --file conda/environments/cuxfilter_dev_cuda10.0.yml
conda env create --name cuxfilter_dev --file conda/environments/all_cuda-118_arch-x86_64.yaml
# activate the environment
source activate cuxfilter_dev
```
- If you're using CUDA 9.2, you will need to create the environment with `conda env create --name cuxfilter_dev --file conda/environments/cuxfilter_dev_cuda9.2.yml` instead.

- If you're using CUDA 10.1, you will need to create the environment with `conda env create --name cuxfilter_dev --file conda/environments/cuxfilter_dev_cuda10.1.yml` instead.

- Build the `cuxfilter` python packages, in the `python` folder:
```bash
Expand All @@ -153,9 +150,9 @@ Done! You are ready to develop for the cuxfilter OSS project

cuxfilter.py acts like a connector library and it is easy to add support for new libraries. The cuxfilter/charts/core directory has all the core chart classes which can be inherited and used to implement a few (viz related) functions and support dashboarding in cuxfilter directly.

You can see the examples to implement viz libraries in the bokeh and datashader directories.
You can see the examples to implement viz libraries in the bokeh and datashader directories.

Current plan is to add support for the following libraries apart from bokeh and datashader:
1. deckgl

Open a feature request for requesting support for libraries other than the above mentioned ones.
Open a feature request for requesting support for libraries other than the above mentioned ones.
45 changes: 23 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Build Status](https://gpuci.gpuopenanalytics.com/job/rapidsai/job/gpuci/job/cuxfilter/job/branches/job/cuxfilter-branch-pipeline/badge/icon)](https://gpuci.gpuopenanalytics.com/job/rapidsai/job/gpuci/job/cuxfilter/job/branches/job/cuxfilter-branch-pipeline/)

cuxfilter ( ku-cross-filter ) is a [RAPIDS](https://github.com/rapidsai) framework to connect web visualizations to GPU accelerated crossfiltering. Inspired by the javascript version of the [original]( https://github.com/crossfilter/crossfilter), it enables interactive and super fast multi-dimensional filtering of 100 million+ row tabular datasets via [cuDF](https://github.com/rapidsai/cudf).
cuxfilter ( ku-cross-filter ) is a [RAPIDS](https://github.com/rapidsai) framework to connect web visualizations to GPU accelerated crossfiltering. Inspired by the javascript version of the [original](https://github.com/crossfilter/crossfilter), it enables interactive and super fast multi-dimensional filtering of 100 million+ row tabular datasets via [cuDF](https://github.com/rapidsai/cudf).

## RAPIDS Viz

Expand Down Expand Up @@ -71,7 +71,8 @@ chart4 = cuxfilter.charts.bar('MONTH')
#declare dashboard
d = cux_df.dashboard([chart1, chart3, chart4], sidebar=[chart2], layout=cuxfilter.layouts.feature_and_double_base, title='Auto Accident Dataset')

#run the dashboard as a webapp:
# run the dashboard as a webapp:
# Bokeh and Datashader based charts also have a `save` tool on the side toolbar, which can download and save the individual chart when interacting with the dashboard.
# d.show('jupyter-notebook/lab-url')

#run the dashboard within the notebook cell
Expand Down Expand Up @@ -101,7 +102,7 @@ MAPBOX_API_KEY= "<mapbox-api-key>"
geoJSONSource='https://raw.githubusercontent.com/rapidsai/cuxfilter/GTC-2018-mortgage-visualization/javascript/demos/GTC%20demo/src/data/zip3-ms-rhs-lessprops.json'

chart0 = cuxfilter.charts.choropleth( x='zip', color_column='delinquency_12_prediction', color_aggregate_fn='mean',
elevation_column='current_actual_upb', elevation_factor=0.00001, elevation_aggregate_fn='sum',
elevation_column='current_actual_upb', elevation_factor=0.00001, elevation_aggregate_fn='sum',
geoJSONSource=geoJSONSource, mapbox_api_key=MAPBOX_API_KEY, data_points=1000
)
chart2 = cuxfilter.charts.bar('delinquency_12_prediction',data_points=50)
Expand All @@ -111,7 +112,8 @@ chart1 = cuxfilter.charts.drop_down('dti')
#declare dashboard
d = cux_df.dashboard([chart0, chart2],sidebar=[chart3, chart1], layout=cuxfilter.layouts.feature_and_double_base,theme = cuxfilter.themes.light, title='Mortgage Dashboard')

#run the dashboard within the notebook cell
# run the dashboard within the notebook cell
# Bokeh and Datashader based charts also have a `save` tool on the side toolbar, which can download and save the individual chart when interacting with the dashboard.
# d.app()

#run the dashboard as a webapp:
Expand Down Expand Up @@ -148,32 +150,31 @@ Please see the [Demo Docker Repository](https://hub.docker.com/r/rapidsai/rapids

### CUDA/GPU requirements

- CUDA 10.1+
- NVIDIA driver 418.39+
- CUDA 11.2+
- NVIDIA driver 450.80.02+
- Pascal architecture or better (Compute Capability >=6.0)

### Conda

cuxfilter can be installed with conda ([miniconda](https://conda.io/miniconda.html), or the full [Anaconda distribution](https://www.anaconda.com/download)) from the `rapidsai` channel:

For `cuxfilter version == 22.12` :
For `cuxfilter version == 23.02` :

```bash
# for CUDA 11.5
conda install -c rapidsai -c nvidia -c numba -c conda-forge \
cuxfilter=22.12 python=3.7 cudatoolkit=11.5

# for CUDA 11.8
conda install -c rapidsai -c numba -c conda-forge -c nvidia \
cuxfilter=23.02 python=3.10 cudatoolkit=11.8
```

For the nightly version of `cuxfilter` :

```bash
# for CUDA 11.5
conda install -c rapidsai-nightly -c nvidia -c numba -c conda-forge \
cuxfilter python=3.7 cudatoolkit=11.5
# for CUDA 11.8
conda install -c rapidsai-nightly -c numba -c conda-forge -c nvidia \
cuxfilter python=3.10 cudatoolkit=11.8
```

Note: cuxfilter is supported only on Linux, and with Python versions 3.7 and later.
Note: cuxfilter is supported only on Linux, and with Python versions 3.8 and later.

See the [Get RAPIDS version picker](https://rapids.ai/start.html) for more OS and version info.

Expand Down Expand Up @@ -232,13 +233,13 @@ Currently supported layout templates and example code can be found on the [layou

### Currently Supported Charts

| Library | Chart type |
| ------------- | ------------- |
| bokeh | bar, line |
| datashader | scatter, scatter_geo, line, stacked_lines, heatmap, graph |
| panel_widgets | range_slider, date_range_slider, float_slider, int_slider, drop_down, multi_select, card, number |
| custom | view_dataframe |
| pydeck | choropleth(3d and 2d) |
| Library | Chart type |
| ------------- | ------------------------------------------------------------------------------------------------ |
| bokeh | bar, line |
| datashader | scatter, scatter_geo, line, stacked_lines, heatmap, graph |
| panel_widgets | range_slider, date_range_slider, float_slider, int_slider, drop_down, multi_select, card, number |
| custom | view_dataframe |
| pydeck | choropleth(3d and 2d) |

## Contributing Developers Guide

Expand Down
8 changes: 3 additions & 5 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,19 @@ ARGS=$*
# NOTE: ensure all dir changes are relative to the location of this
# script, and that this script resides in the repo dir!
REPODIR=$(cd $(dirname $0); pwd)
VALIDARGS="clean cuxfilter cudatashader -v -g -n --allgpuarch -h"
HELP="$0 [clean] [cuxfilter] [cudatashader] [-v] [-g] [-n] [-h]
VALIDARGS="clean cuxfilter -v -g -n --allgpuarch -h"
HELP="$0 [clean] [cuxfilter] [-v] [-g] [-n] [-h]
clean - remove all existing build artifacts and configuration (start
over)
cuxfilter - build the cuxfilter library only
cudatashader - build the cudatashader library only
-v - verbose build mode
-g - build for debug
-n - no install step
--allgpuarch - build for all supported GPU architectures
-h - print this text
"
CUXFILTER_BUILD_DIR=${REPODIR}/python/cuxfilter/build
#CUDATASHADER_BUILD_DIR=${REPODIR}/cuDatashader/build
BUILD_DIRS="${CUXFILTER_BUILD_DIR}" #{CUDATASHADER_BUILD_DIR}
BUILD_DIRS="${CUXFILTER_BUILD_DIR}"

# Set defaults for vars modified by flags to this script
VERBOSE=""
Expand Down
Loading

0 comments on commit e31798b

Please sign in to comment.