InsightSoftwareConsortium / InsightSoftwareConsortium/ITKVkFFTBackend

VkFFT error code handling

Open
#40 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
8
Forks
6
Avg merge
1h 16m
Merged PRs (30d)
1

Description

Exceptions thrown by ITK VkFFT classes are disruptive to pipeline flow and difficult to read. For example, from Python benchmarking on BIL workshop2 node:
```
Experiment Image Len (px) Volume (px) CPU FFT Time (s) GPU FFT Time(s) Speedup
0 10 1.00e+03 0.000204 0.320318 -156668.8%
1 30 2.70e+04 0.001416 0.159839 -11186.4%
2 100 1.00e+06 0.042245 0.153889 -264.3%
3 200 8.00e+06 0.450544 0.824002 -82.9%
4 300 2.70e+07 1.304689 0.294664 77.4%
5 600 2.16e+08 12.178864 1.481467 87.8%
6 800 5.12e+08 44.749890 3.230387 92.8%
7 1000 1.00e+09 59.368654 6.215513 89.5%
8 1200 1.73e+09 123.027794 10.488541 91.5%
Traceback (most recent call last):
File "/bil/users/tbirdso/vkfft/benchmark.py", line 42, in
vk_interval = run_fft(vk_type, image_size)
File "/bil/users/tbirdso/vkfft/benchmark.py", line 28, in run_fft
return benchmark_fft(fft_filter)
File "/bil/users/tbirdso/vkfft/benchmark.py", line 20, in benchmark_fft
itk_fft_filter.Update()
RuntimeError: ../../../include/itkVkForwardFFTImageFilter.hxx:100:
ITK ERROR: VkFFT third-party library failed with error code 4039.
```

Proposals:
1. Investigate whether there is a better way to handle ITK filter failures. (The answer may be just using try/catch blocks in the C++ or Python calling script, but would be good to research).
2. Translate VkFFT error codes into human-readable errors inline rather than require consulting the user manual. May involve contributions back to VkFFT.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.