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

Array problems #32

Open
franciscofritz opened this issue Dec 7, 2020 · 1 comment
Open

Array problems #32

franciscofritz opened this issue Dec 7, 2020 · 1 comment

Comments

@franciscofritz
Copy link

To whom may concern,
glad to contact. I have a question. I am running a code that it used to work months ago but nowadays it is not working anymore. To be more precise, when mdt.fit_model(...) is running, the following console output shows up:

C:\Users\lagos\Anaconda3\python.exe C:/Users/lagos/Desktop/Toolbox/mt-scripts/mt_scripts/franc/relaxometry/Experimental_Studies/20201207_InSilico_R2sAngularDependency_MyelinStudy.py
pixdim[0] (qfac) should be 1 (default) or -1; setting qfac to 1
pixdim[0] (qfac) should be 1 (default) or -1; setting qfac to 1
pixdim[0] (qfac) should be 1 (default) or -1; setting qfac to 1
pixdim[0] (qfac) should be 1 (default) or -1; setting qfac to 1
[2020-12-07 16:06:05,182] [INFO] [mdt] [fit_model] - Preparing S0-QuadTE with the cascaded initializations.
[2020-12-07 16:06:05,185] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Using MDT version 1.2.5
[2020-12-07 16:06:05,185] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Preparing for model S0-QuadTE
[2020-12-07 16:06:05,372] [INFO] [mdt.models.composite] [_prepare_input_data] - No volume options to apply, using all 16 volumes.
[2020-12-07 16:06:05,373] [INFO] [mdt.lib.processing.model_fitting] [_model_fit_logging] - Fitting S0-QuadTE model
[2020-12-07 16:06:05,373] [INFO] [mdt.lib.processing.model_fitting] [_model_fit_logging] - The 3 parameters we will fit are: ['S0.s0', 'QuadTE.beta1', 'QuadTE.beta2']
[2020-12-07 16:06:05,373] [INFO] [mdt.lib.processing.model_fitting] [fit_composite_model] - Saving temporary results in G:\Projects\Optic_Chiasm_R2_Dispersion\Simulation_Dataset\Data_InSilico\output\InSilico_NoDispNoMye_AngMeas1\MaxTE16_2\S0-QuadTE\tmp_results.
[2020-12-07 16:06:05,726] [INFO] [mdt.lib.processing.processing_strategies] [_process_chunk] - Computations are at 0.00%, processing next 100000 voxels (335000 voxels in total, 0 processed). Time spent: 0:00:00:00, time left: ? (d:h:m:s).
[2020-12-07 16:06:05,727] [INFO] [mdt.lib.processing.model_fitting] [_process] - Starting optimization
[2020-12-07 16:06:05,727] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using MOT version 0.11.3
[2020-12-07 16:06:05,727] [INFO] [mdt.lib.processing.model_fitting] [_process] - We will use a double precision float type for the calculations.
[2020-12-07 16:06:05,727] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using device 'GPU - Intel(R) HD Graphics 520 (Intel(R) OpenCL HD Graphics)'.
[2020-12-07 16:06:05,727] [INFO] [mdt.lib.processing.model_fitting] [_process] - Using compile flags: ('-cl-denorms-are-zero', '-cl-mad-enable', '-cl-no-signed-zeros')
[2020-12-07 16:06:05,728] [INFO] [mdt.lib.processing.model_fitting] [_process] - We will use the optimizer Powell with optimizer settings {'patience': 10}
InvalidArraySize: Array size must be at least 1: [0 x i8] [Src: d:\qb\workspace\22235\source\llvm_source\projects\llvm-spirv\lib\spirv\spirvwriter.cpp:332 T->getArrayNumElements() >= 1 ]

This last warning is weird because the dataset (mdt.load_input_data) is being loaded properly (all the volumes, the protocol, the extra protocol and noise_std = value). I would like to ask where the problem can be.

Best regards,
Francisco

@franciscofritz
Copy link
Author

franciscofritz commented Dec 7, 2020

Well, a little bit more of details while I was debugging the code:
The error occurs at:
model.fitting.py > def _process(self, roi_indices, next_indices = None):
(Line 371) x0 = self._codec.encode(self._initial_params[roi_indices], kernel_data_subset)
More in deep:
In cl_function.py
(Line 356) kernels = get_kernels(kernel_source, cl_function.get_cl_function_name())

(Line 349) if key not in self._compilation_cache:
self._compilation_cache[key] = cl.Program(
env.context, kernel_source).build(' '.join(cl_runtime_info.compile_flags))
kernels[env] = getattr(self._compilation_cache[key], function_name)

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

1 participant