Skip to content
This repository was archived by the owner on Sep 25, 2023. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rapidsai/cusignal
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: fa09f4d7dbc115989cfc99b4f4d1bf78e001357f
Choose a base ref
...
head repository: rapidsai/cusignal
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: ad07d05f27fe25128eda99d8baefd52c5c80fcb1
Choose a head ref
Loading
Showing with 11,781 additions and 6,057 deletions.
  1. +3 −0 .gitattributes
  2. +88 −1 CHANGELOG.md
  3. +42 −0 CODE_OF_CONDUCT.md
  4. +1 −1 CONTRIBUTING.md
  5. +105 −48 README.md
  6. +63 −1 build.sh
  7. +4 −4 ci/checks/changelog.sh
  8. +0 −4 ci/cpu/build.sh
  9. +2 −3 ci/cpu/upload-anaconda.sh
  10. +56 −0 ci/docs/build.sh
  11. +20 −7 ci/gpu/build.sh
  12. +51 −0 ci/gpu/test-notebooks.sh
  13. +5 −2 ci/local/build.sh
  14. +49 −0 ci/utils/nbtest.sh
  15. +162 −0 ci/utils/nbtestlog2junitxml.py
  16. +21 −0 conda/environments/cusignal_airt.yml
  17. +5 −4 conda/environments/cusignal_base.yml
  18. +5 −4 conda/environments/cusignal_full.yml
  19. +5 −4 conda/environments/cusignal_jetson_base.yml
  20. +4 −0 conda/recipes/cusignal/build.sh
  21. +13 −8 conda/recipes/cusignal/meta.yaml
  22. +155 −0 cpp/.clang_format
  23. +189 −0 cpp/scripts/run-clang-format.py
  24. +578 −0 cpp/src/convolution/_convolution.cu
  25. +933 −0 cpp/src/filtering/_channelizer.cu
  26. +157 −0 cpp/src/filtering/_sosfilt.cu
  27. +232 −0 cpp/src/filtering/_upfirdn.cu
  28. +253 −0 cpp/src/io/_reader.cu
  29. +81 −0 cpp/src/io/_writer.cu
  30. +149 −0 cpp/src/spectral_analysis/_spectral.cu
  31. +39 −0 docs/source/api.rst
  32. +2 −2 docs/source/conf.py
  33. +10 −13 notebooks/E2E_Example.ipynb
  34. +375 −0 notebooks/api_guide/convolution_examples.ipynb
  35. +380 −0 notebooks/api_guide/estimation_examples.ipynb
  36. +90 −0 notebooks/api_guide/filter_design_examples.ipynb
  37. +444 −0 notebooks/api_guide/filtering_examples.ipynb
  38. +413 −0 notebooks/api_guide/io_examples.ipynb
  39. +0 −811 notebooks/api_guide/signaltools_examples.ipynb
  40. +5 −4 notebooks/sdr/online_signal_processing_tools.ipynb
  41. +289 −0 notebooks/visualization/scope.ipynb
  42. +34 −23 python/cusignal/__init__.py
  43. +0 −299 python/cusignal/_lfilter.py
  44. +0 −1,115 python/cusignal/_signaltools.py
  45. +0 −449 python/cusignal/_spectral.py
  46. +0 −645 python/cusignal/_upfirdn.py
  47. +2 −0 python/cusignal/acoustics/cepstrum.py
  48. +0 −479 python/cusignal/benchmark/bench_signaltools.py
  49. +0 −412 python/cusignal/benchmark/bench_spectral.py
  50. +0 −105 python/cusignal/benchmark/bench_waveforms.py
  51. +0 −108 python/cusignal/benchmark/bench_wavelets.py
  52. +0 −323 python/cusignal/benchmark/bench_windows.py
  53. +400 −0 python/cusignal/convolution/_convolution_cuda.py
  54. +7 −0 python/cusignal/convolution/convolution_utils.py
  55. +28 −57 python/cusignal/convolution/convolve.py
  56. +19 −59 python/cusignal/convolution/correlate.py
  57. +1 −16 python/{pytest.ini → cusignal/estimation/__init__.py}
  58. +881 −0 python/cusignal/estimation/_filters_cuda.py
  59. +391 −0 python/cusignal/estimation/filters.py
  60. +27 −0 python/cusignal/filter_design/filter_design_utils.py
  61. +10 −10 python/cusignal/filter_design/fir_filter_design.py
  62. +3 −1 python/cusignal/filtering/__init__.py
  63. +125 −0 python/cusignal/filtering/_channelizer_cuda.py
  64. +98 −0 python/cusignal/filtering/_sosfilt_cuda.py
  65. +244 −0 python/cusignal/filtering/_upfirdn_cuda.py
  66. +268 −52 python/cusignal/filtering/filtering.py
  67. +87 −83 python/cusignal/filtering/resample.py
  68. +25 −0 python/cusignal/io/__init__.py
  69. +110 −0 python/cusignal/io/_reader_cuda.py
  70. +104 −0 python/cusignal/io/_writer_cuda.py
  71. +229 −0 python/cusignal/io/reader.py
  72. +103 −0 python/cusignal/io/writer.py
  73. +7 −7 python/cusignal/peak_finding/peak_finding.py
  74. +91 −0 python/cusignal/spectral_analysis/_spectral_cuda.py
  75. +21 −37 python/cusignal/spectral_analysis/spectral.py
  76. +47 −0 python/cusignal/{benchmark → test}/conftest.py
  77. +77 −0 python/cusignal/test/test_acoustics.py
  78. +94 −0 python/cusignal/test/test_bsplines.py
  79. +254 −0 python/cusignal/test/test_convolution.py
  80. +129 −0 python/cusignal/test/test_filter_design.py
  81. +533 −0 python/cusignal/test/test_filtering.py
  82. 0 python/cusignal/{benchmark/__init__.py → test/test_filters.py}
  83. +77 −0 python/cusignal/test/test_peak_finding.py
  84. +0 −267 python/cusignal/test/test_signaltools.py
  85. +0 −236 python/cusignal/test/test_spectral.py
  86. +520 −0 python/cusignal/test/test_spectral_analysis.py
  87. +121 −52 python/cusignal/test/test_waveforms.py
  88. +129 −35 python/cusignal/test/test_wavelets.py
  89. +481 −147 python/cusignal/test/test_windows.py
  90. +20 −0 python/cusignal/test/utils.py
  91. +4 −1 python/cusignal/utils/__init__.py
  92. +15 −0 python/cusignal/utils/_caches.py
  93. +127 −31 python/cusignal/utils/arraytools.py
  94. +192 −21 python/cusignal/utils/fftpack_helper.py
  95. +62 −0 python/cusignal/utils/helper_tools.py
  96. +92 −65 python/cusignal/windows/windows.py
  97. +12 −0 python/setup.cfg
  98. +2 −1 python/setup.py
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
notebooks/api_guide/*.ipynb linguist-vendored
notebooks/*.ipynb linguist-vendored
notebooks/sdr/*.ipynb linguist-vendored
89 changes: 88 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,76 @@
# cuSignal 0.14 (Date TBD)
# cuSignal 0.16.0 (Date TBD)

## New Features
- PR #185 - Add function to translate PyCUDA gpuarray to CuPy ndarray
- PR #195 - Add explicit FIR filter functionality
- PR #199 - Added Ampere support
- PR #208 - Remove CuPy v8 req for Kalman filter
- PR #210 - Add signal scope example to notebooks

## Improvements
- PR #196 - Update README for cuSignal 0.15
- PR #200 - Add if constexpr to binary reader
- PR #202 - Performance improvement to Lombscargle
- PR #203 - Update build process
- PR #207 - Add CUDA 10 compatibility with polyphase channelizer
- PR #211 - Add firfilter and channelize_poly to documentation; remove CPU only version of channelizer
- PR #212 - Add KF to documentation build
- PR #213 - Graceful handling of filter tap limit for polyphase channelizer
- PR #215 - Improve doc formating for filtering operations
- PR #219 - Add missing pytests

## Bug Fixes
- PR #214 - Fix grid-stride loop bug in polyphase channelizer
- PR #218 - Remove fatbins from source code on GH
- PR #221 - Synchronization issue with cusignal testing

# cuSignal 0.15.0 (26 Aug 2020)

## New Features
- PR #69 - Multi-point Kalman Filter
- PR #144 - Added AIR-T conda recipe
- PR #119 - Added code of conduct
- PR #122 - GPU accelerated SigMF Reader
- PR #130 - Reorg tests and benchmarks to match #83 code refactor
- PR #136 - Split reader and writer in IO packages and update docs
- PR #146 - Add compatibility with Scipy 1.5.0; Default to SciPy > 1.5
- PR #149 - Update Jetson conda to miniforge, Fix CoC, and Add SciPy Talk
- PR #148 - Load fatbin at runtime
- PR #69 - Multi-point Kalman Filter
- PR #158 - Add debug flag for debugging
- PR #161 - Basic implementation of polyphase channelizer

## Improvements
- PR #112 - Remove Numba kernels
- PR #121 - Add docs build script
- PR #126 - Install dependencies via meta package
- PR #132 - Add IO API guide Jupyter notebook
- PR #133 - Add IO module to cusignal docs
- PR #160 - Update KF functionality
- PR #170 - Combine tests and benchmarks
- PR #173 - Hardcode SOS width
- PR #181 - Added estimation notebook

## Bug Fixes
- PR #164 - Fix typos in the rest of the example code.
- PR #162 - Fix typo in example plotting code
- PR #116 - Fix stream usage on CuPy raw kernels
- PR #124 - Remove cp_stream and autosync
- PR #127 - Fix selected documentation formatting errors
- PR #138 - Fix overflow issues in `upfirdn`
- PR #139 - Fixes packaging of python package
- PR #143 - Fix six package missing with Scipy 1.5
- PR #152 - Fix error in detrend related to missing indexing support with cp.r_
- PR #150 - Fix upfirdn output len for Scipy 1.5
- PR #155 - Update CI local docker build
- PR #153 - Fix issue with incorrect docker image being used in local build script
- PR #157 - Add docs for Kalman Filter
- PR #165 - Fix Kalman Filter version check
- PR #174 - Fix bug in KF script
- PR #175 - Update E2E Notebook for PyTorch 1.4, Fix SegFault
- PR #179 - Fix CuPy 8.0dev CI build error

# cuSignal 0.14 (03 Jun 2020)

## New Features
- PR #43 - Add pytest-benchmarks tests
@@ -10,6 +82,7 @@
- PR #73 - Local gpuCI build script
- PR #75 - Add accelerated `lfilter` method.
- PR #82 - Implement `autosync` to synchronize raw kernels by default
- PR #99 - Implement `sosfilt` as an alternative to `lfilter`

## Improvements
- PR #40 - Ability to specify time/freq domain for resample.
@@ -23,11 +96,25 @@
- PR #67 - cuSignal code refactor and documentation update
- PR #71 - README spelling and conda install fixes
- PR #78 - Ported lfilter to CuPy Raw Kernel (only 1D functional)
- PR #83 - Implement code refactor
- PR #84 - Update minimum versions of CuPy and Numba and associated conda envs
- PR #87 - Update lfilter documentation to clarifiy single-threaded perf
- PR #89 - Include data types in tests and benchmarks
- PR #95 - Add `.gitattributes` to remove notebooks from GitHub stats
- PR #97 - Add pytest-benchmark to conda ymls and update conda env name
- PR #98 - Update documentation to show pytest-benchmark usage and link to API docs
- PR #101 - Add notebook testing to CI
- PR #103 - Update notebooks to match new code structure
- PR #110 - Update README for 0.14 release
- PR #113 - Add git commit to conda package

## Bug Fixes
- PR #44 - Fix issues in pytests
- PR #52 - Mirror API change in Numba 0.49
- PR #70 - Typo fix in docs api.rst that broke build
- PR #93 - Remove `lfilter` due to poor performance in real-time applications
- PR #96 - Move data type check to `_populate_kernel_cache`
- PR #104 - Fix flake8 errors

# cuSignal 0.13 (31 Mar 2020)

42 changes: 42 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# cuSignal Code of Conduct

cuSignal has adopted the [Contributor Covenant Conde of Conduct](https://docs.rapids.ai/resources/conduct):

## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards
### Examples of behavior that contributes to creating a positive environment include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members


### Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others’ private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [conduct@rapids.ai](mailto:conduct@rapids.ai). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.

## Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ into three categories:

### Your first issue

1. Read the project's [README.md](https://github.com/rapidsai/cusignal/blob/master/README.md)
1. Read the project's [README.md](https://github.com/rapidsai/cusignal/blob/main/README.md)
to learn how to setup the development environment
2. Find an issue to work on. The best way is to look for the [good first issue](https://github.com/rapidsai/cusignal/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
or [help wanted](https://github.com/rapidsai/cusignal/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) labels
Loading