Hello,
We are investigating Gap Junctions channels in cells (during cardiac arrhythmia also propagation of excitation in neural networks).
I am trying to implement our model in SYCL (to solve Noble-like equations using Euler’s method), and have two questions:
- How to pass parameters to SYCL kernel? is it only possible by using buffers?
I want to pass iteration number to kernel and some other parameters. - How to synchronize workers in kernel? adding something like ‘barrier’?
I splitted our model algorithm in two kernels, to make sure that all operations will be complete in kernel1 before kernel2 computation begins.
CUDA version of algorithm, main loop in host code:
for (uint i=0; i < N_sim; i++) {
uint i_reg = (N_reg*i)/N_sim;
kernel_1<<<grid, block>>>(dev_n, dev_m, dev_h, dev_I, dev_V_YX, i, i_reg, dt_sim, cellCountX, cellCountY);
cudaDeviceSynchronize();
kernel_2<<<grid, block>>>(dev_I, dev_V_YX, dev_V_tYX_reg, i, i_reg, dt_sim, dt_reg, cellCountX, cellCountY);
cudaDeviceSynchronize();
}
Model is based on Noble-like equations combined with Gap Junction model, that is using Markov chain approach.
Our paper about similar model: http://jgp.rupress.org/content/147/3/273.abstract
Kestutis,
Lithuanian University of Health Sciences