Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support arbitrary data types #42

Open
1 of 4 tasks
matze opened this issue Oct 16, 2014 · 3 comments
Open
1 of 4 tasks

Support arbitrary data types #42

matze opened this issue Oct 16, 2014 · 3 comments
Assignees
Milestone

Comments

@matze
Copy link
Contributor

matze commented Oct 16, 2014

Up to now, processing multi-dimensional single precision floating point data is the main target of the UFO framework, however support for element types other than that has been proposed. Here are some issues that we (@Tomago, @rshkarin, @ashkarin, @kamer16) should discuss before implementing it:

  • What types are absolutely necessary? I suppose it's at least double.
  • How should arbitrary kernels know about this? My first idea would be to compile the kernels with -Dbtype=double and use btype for all global arguments.
  • What should we do if a certain type is not supported by the device? Especially double is a big problem on GPUs. We could convert implicitly but that's ... not what people would expect.
  • Where do we set the desired buffer type? Per task? For the entire graph?
@matze matze self-assigned this Oct 16, 2014
@tfarago
Copy link
Contributor

tfarago commented Oct 16, 2014

Good to see this here.

  1. absolutely necessary is ushort because of the cameras. But the more the merrier
  2. exactly
  3. I know, then don't execute the graph and tell the user why and what they can do. If I do high-precision calculations I certainly don't want the framework to implicitly change my data type.
  4. Per task I would say, another attribute in the ufo-buffer structure. Use case: camera data (ushort) -> filtering (2x float, or, better yet, complex) -> backprojection (float) -> normalization (ubyte) -> writer

@matze
Copy link
Contributor Author

matze commented Oct 22, 2014

Concerning number 4: I suppose it's up to the task to decide which type to use rather than the user?

@tfarago
Copy link
Contributor

tfarago commented Oct 22, 2014

Yes and no, e.g. flat correction has to output floats, sure. But what if the user wants it as a double? Or what if we have a normalize node? Then if I set it up to normalize to [0..255] I can convert it to ubyte from float or so. But for this we can make a converting node and the user can just use that one if they want full control.

@matze matze added this to the Version 1.0 milestone Feb 16, 2015
MarcusZuber pushed a commit that referenced this issue May 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants