An error occurred while fetching the assigned milestone of the selected merge_request.
WIP: Astnodes for interpolation
This PR needs maybe still needs some clean-up. However, it would be good to recieve already some feed-back.
What works:
- Using CUDA textures
- Using HW accelerated interpolation for float32 textures
- Implement linear interpolations either via software (CPU, GPU), texture accesses without HW-interpolation but HW boundary handling
- Adding transformed coordinate systems to fields
What does not work:
- HW boundary handling for CUDA textures for the boundary handling modes
mirror
andwrap
(apparently they have been removed from CUDA's API but are still present in pycuda. Now there's only
cudaBoundaryModeZero = 0
Zero boundary mode
cudaBoundaryModeClamp = 1
Clamp boundary mode
cudaBoundaryModeTrap = 2
Trap boundary mode
Wtf is trap boundary mode? Nothing is documented so we can only experiment.
What kind of works:
- B-Spline interpolation on GPU using this repo as a submodule (http://www.dannyruijters.nl/cubicinterpolation/), to lazy for tests. Don't know how to prove correctness
- Textures for dtypes with itemsize > 4. PyCUDA has helper header (https://github.com/inducer/pycuda/blob/master/pycuda/cuda/pycuda-helpers.hpp) that loads doubles by two int fetches. However, this hack seems to be only working if we add a 0.5 offset and make all functions in this header accept float.
Edited by Stephan Seitz
Merge request reports
Activity
Filter activity
added 19 commits
-
f13a8552...ddb86435 - 5 commits from branch
pycodegen:master
- b006fd15 - Fix address_of-test
- 76cfd002 - Implement CustomSympyPrinter._print_{Sum,Product}
- dfd98154 - Implement astnodes {SourceCodeComment,EmptyLine}
- 05b8b2d8 - Implement __eq__, __hash__ for CustomCodeNode
- 31983801 - Print double literals always with .
- 8add180a - Lint: cbackend
- 063184c8 - Determine undefined_symbols of SympyAssignment by free_symbols instead
- 4943c2ec - Sympyfy rhs of SympyAssignment (so we can assign numbers)
- 1e77bf8f - Make Block.insert_front accept iterables for multiple insertions
- ed6b55a9 - Implement textures and software interpolation
- 78ed9107 - Make all integer_functions return is_integer=True
- 6e4ed62c - Add submodule CubicInterpolationCUDA
- 2d316977 - WIP: add interpolation_mode (NEAREST_NEIGHBOR vs LINEAR)
- 0cc27473 - WIP: add interpolation_mode (NEAREST_NEIGHBOUR vs LINEAR)
Toggle commit list-
f13a8552...ddb86435 - 5 commits from branch
added 12 commits
- 486e6826 - Implement CustomSympyPrinter._print_{Sum,Product}
- 1b36e675 - Implement astnodes {SourceCodeComment,EmptyLine}
- 13ff62a6 - Implement __eq__, __hash__ for CustomCodeNode
- fd12ffb2 - Print double literals always with .
- b45bda6f - Lint: cbackend
- 52a606c1 - Determine undefined_symbols of SympyAssignment by free_symbols instead
- 97659697 - Sympyfy rhs of SympyAssignment (so we can assign numbers)
- b9418e93 - Make Block.insert_front accept iterables for multiple insertions
- 5558750e - Implement textures and software interpolation
- f8d8d6a8 - Make all integer_functions return is_integer=True
- 4e8932a1 - Add submodule CubicInterpolationCUDA
- b132a731 - WIP: add interpolation_mode (NEAREST_NEIGHBOR vs LINEAR)
Toggle commit listadded 19 commits
-
b132a731...2e2bc712 - 6 commits from branch
pycodegen:master
- e66b90f2 - Fix address_of-test
- 01b8032e - Implement CustomSympyPrinter._print_{Sum,Product}
- 2fe6cd6d - Implement astnodes {SourceCodeComment,EmptyLine}
- 13a45fed - Implement __eq__, __hash__ for CustomCodeNode
- 717f8aac - Print double literals always with .
- 1cb265e6 - Lint: cbackend
- 099c281a - Determine undefined_symbols of SympyAssignment by free_symbols instead
- 2259867d - Sympyfy rhs of SympyAssignment (so we can assign numbers)
- 541ed528 - Make Block.insert_front accept iterables for multiple insertions
- f04d4f6f - Implement textures and software interpolation
- 44a88113 - Make all integer_functions return is_integer=True
- 5fa29433 - Add submodule CubicInterpolationCUDA
- eba2ea13 - WIP: add interpolation_mode (NEAREST_NEIGHBOR vs LINEAR)
Toggle commit list-
b132a731...2e2bc712 - 6 commits from branch
mentioned in merge request !56 (merged)
Please register or sign in to reply