-
Notifications
You must be signed in to change notification settings - Fork 0
Evaluation CUDA
How good is the project health? That is, we want to determine how likely is it that development on the language will continue and that it will keep getting funding and interest from developers.
Subquestions include:
-
Quality of documentation
Extensive documentation. Lots of examples and tutorials.
-
Code review
-
Portability
Only Nvidia graphics cards with certain minimum "compute capability", i.e. specific features of the hardware at hand may be exploited directly in the code, thus depending on the hardware having at least those features. (TODO: Compute Capability is identified by a version number, thus backwards compatibility appears conserved, but is it actually?)
-
Installation process
Delivered as self-contained binary SDKs. Only integration with development environment may be tricky (environment variables for linking etc.)
-
Number of dependencies (incl. GHC extensions)
Self-contained in software, but requires the actual hardware to develop.
-
Number of users (reverse dependencies)
Counting is intractable. Very widely in use.
-
Number of contributors
Unknown/NA. Maintained exclusively by NVidia
-
How easy is it to start contributing?
Unknown/NA. Maintained exclusively by NVidia
-
Latest project activity (e.g. which version of GHC does it compile on?)
Actively maintained.
-
Licensing
AllRightsReserved?
-
Funding
Unknown/NA. Maintained exclusively by NVidia
How easy is the language to use? And how expressive is it? Our aim is to find a language that might be suitable for a financial engineer and we thus want a suitably high-level language. It should be near the complexity level of R. We still want the language to expressive enough to cover the domain of financial algorithms.
Subquestions include
-
Which programs can we write, and which can't we write?
-
Can we write nested loops?
Yes, but performance will suffer if the parallel control paths diverge.
-
Does it include all of: scans, folds, zip/map, stencils,
(All check).
-
-
How good are the error messages?
"CudaErrorLaunchFailure" is the typical response to in-kernel runtime errors it seems. Compile-time errors tend to be more descriptive though. (TODO, actually list some errors?)
-
How high-level is it on the scale from R to CUDA? CUDA, obviously.
- Debugging with printf is difficult.
- No simulator included - The actual hardware is needed to develop software.
- The lowest level available high level language for the platform.