I built on arm64 and had a look at the results 99% tests passed, 27 tests failed out of 2927
These failed: #502: itkPatchBasedDenoisingImageFilterTest0 #503: itkPatchBasedDenoisingImageFilterTestGaussian #504: itkPatchBasedDenoisingImageFilterTestRician #505: itkPatchBasedDenoisingImageFilterTestPoisson #824: itkHDF5ImageIOTest #911: itkMINCImageIOTest3 #920: itkMINCImageIOTest-COM-t1_z-_byte_cor #921: itkMINCImageIOTest-COM-t1_z+_byte_cor #922: itkMINCImageIOTest-COM-t1_z-_byte_sag #923: itkMINCImageIOTest-COM-t1_z+_byte_sag #924: itkMINCImageIOTest-COM-t1_z-_byte_trans #925: itkMINCImageIOTest-COM-t1_z+_byte_trans #1326: itkBSplineScatteredDataPointSetToImageFilterTest05 #1402: itkSymmetricEigenAnalysisImageFilterTestOrderByValue #1403: itkSymmetricEigenAnalysisImageFilterTestOrderByMagnitude #1404: itkSymmetricEigenAnalysisImageFilterTestDoNotOrder #1731: itkSingleLevelSetsv4DenseImage2DTest #1733: itkSingleLevelSetsv4WhitakerImage2DTest #1734: itkSingleLevelSetsv4WhitakerImage2DTestThreads #1735: itkSingleLevelSetsv4MalcolmImage2DTest #1736: itkSingleLevelSetsv4ShiImage2DTest #1744: itkTwoLevelSetsv4WhitakerImage2DTest #1745: itkTwoLevelSetsv4MalcolmImage2DTest #1746: itkTwoLevelSetsv4ShiImage2DTest #2659: PythonReadDicomAndReadTag and these two timed out after 1500s #686: itkFFTWF_FFTTest #687: itkFFTWF_RealFFTTest I don't yet understand what all the test machinery output means (there is a lot of it!) but most of these tests are image-based. The testing appears to run on an input image and compare the result with an expected output image by generating a diff image. Looking at the diffs visually the issues do not (so far) seem to be very significant. e.g. #502-#504 are just a few pixels off. I don't know enough about the algorithms here to know if they should be absolutely deterministic across architectures. It looks to me as if the arm64 version of the software will produce perfectly functional image analysis in almost all cases - but there are a few cases there they are not pixel-identical to the x86 ones, one file format that may not be read quite correctly, and it may be very slow (probably due to missing optimisations) on some actions (such as the FFTs). None of that seems like sufficient reason to not build it at all. Is there a mechanism for allowing some test failures? It seems to be an all-or-nothing thing - either run no tests, or they all have to pass before the build will complete - but I may be missing something in all that machinery. Initial attempt at analysis: For #502-#504 differences only appear in the edge 4 pixels in the 62x62 test diff. So there is something about the edges that matters? All 7 MINCImageIOTests produce identical diff images. The image file is read in but all the lighter greys seem to be lost or the whole image shifted lighter so the lighter detail is lost. That looks like it is probably a genuine bug. Not sure what's going on with 1402-1404. The 3 inputs are identical (blue 8x8) and the 3 outputs are identical (black 8x8). It's not clear to me what is expected. OK. Out of time for this today and it's clearly going to take a while to investigate. Presumably the most useful thing here is to take this upstream? I can rebuild this and run all the tests in 1.5 hours so it doesn't take forever to test changes. The whole log is humungous, at 156MB, so I've put it here: http://wookware.org/files/insighttoolkit4_4.13.3withdata-dfsg1-3.1_arm64.build rather than attach it. Attached is the trivial patch to enable the arm64 build. Wookey -- Principal hats: Linaro, Debian, Wookware, ARM http://wookware.org/
commit 14de4c42149854c4a34b865d05cbf038608e69a1 Author: Wookey <woo...@debian.org> Date: Wed Dec 9 14:29:52 2020 +0000 Enable arm64 builds diff --git a/debian/changelog b/debian/changelog index e1ab55b..c7e2818 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +insighttoolkit4 (4.13.3withdata-dfsg1-3.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Enable arm64 builds (Closes: #724711) + + -- Wookey <woo...@e123188-lin.cambridge.arm.com> Wed, 09 Dec 2020 14:16:27 +0000 + insighttoolkit4 (4.13.3withdata-dfsg1-3) unstable; urgency=medium * source only upload to force rebuild Closes: #974759 diff --git a/debian/control b/debian/control index 0c626a3..1cf7098 100644 --- a/debian/control +++ b/debian/control @@ -32,7 +32,7 @@ Vcs-Git: https://salsa.debian.org/med-team/insighttoolkit.git Package: libinsighttoolkit4.13 Section: libs -Architecture: amd64 i386 +Architecture: amd64 arm64 i386 Depends: ${shlibs:Depends}, ${misc:Depends} Description: Image processing toolkit for registration and segmentation - runtime ITK is an open-source software toolkit for performing registration and @@ -49,7 +49,7 @@ Description: Image processing toolkit for registration and segmentation - runtim Package: libinsighttoolkit4-dev Section: libdevel -Architecture: amd64 i386 +Architecture: amd64 arm64 i386 Depends: ${shlibs:Depends}, ${misc:Depends}, libinsighttoolkit4.13 (= ${binary:Version}), libgdcm-dev, libdcmtk-dev, libhdf5-dev, libdouble-conversion-dev, libexpat-dev, libnifti-dev, libminc-dev Recommends: libfftw3-dev, uuid-dev Conflicts: libinsighttoolkit-dev, libinsighttoolkit3-dev
signature.asc
Description: PGP signature