Comments (5)
Hi Team,
We are happy to confirm that the build 2.8.0-dev16 works fine on the M1 soc, as we tested it successfully both on a 7-core M1 Macbook Air and an 8-core Mac Mini.
However, the speed is not as fast as we expected. Using our standard simulation test, the M1 is only 61% faster than an Intel Iris Pro Graphics 6200 on an iMac which we use as a baseline to evaluate simulation speeds.
Here is the speed comparison:
Server | Computation Time | Write Time | Speed | GPU Model | VRAM | No. of SP | Base/Boost Freq |
---|---|---|---|---|---|---|---|
MacMini | 9433.194 s | 4.430 s | 1.607 | Apple M1 | 16 GB LPDDR4X | 8? | 3200 MHz |
iMac 21.5 | 15163.754 s | 7.508 s | 1.000 | Intel Iris Pro Graphics 6200 | 1536 MB | 384 | 300/1100 MHz |
from oskar.
UNSUPPORTED (log once): buildComputeProgram: cl2Metal failed
clBuildProgram error (code -11):
Compilation failed:
program_source:3092:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_point_, float), false, false, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3092:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_point_, float), false, false, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3092:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3092:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3093:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_point_bs_, float), true, false, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3093:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_point_bs_, float), true, false, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3093:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3093:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3094:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_point_ts_, float), false, true, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3094:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_point_ts_, float), false, true, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3094:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3094:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3095:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_point_bs_ts_, float), true, true, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3095:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_point_bs_ts_, float), true, true, false, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3095:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3095:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3096:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_, float), false, false, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3096:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_, float), false, false, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3096:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3096:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3097:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_bs_, float), true, false, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3097:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_bs_, float), true, false, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3097:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3097:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3098:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_ts_, float), false, true, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3098:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_ts_, float), false, true, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3098:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3098:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3099:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_bs_ts_, float), true, true, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:455:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3099:1: note: uninitialized use occurs here
OSKAR_XCORR_GPU( M_CAT(xcorr_gaussian_bs_ts_, float), true, true, true, float, float2, float4c)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:463:9: note: expanded from macro 'OSKAR_XCORR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3099:1: note: remove the 'if' if its condition is always true
program_source:455:5: note: expanded from macro 'OSKAR_XCORR_GPU'
if (tid == 0) {
^
program_source:3099:1: note: variable 'uv_len' is declared here
program_source:451:5: note: expanded from macro 'OSKAR_XCORR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3100:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_, float), false, false, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3100:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_, float), false, false, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3100:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3100:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3101:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_bs_, float), true, false, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3101:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_bs_, float), true, false, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3101:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3101:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3102:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_ts_, float), false, true, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3102:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_ts_, float), false, true, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3102:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3102:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3103:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_bs_ts_, float), true, true, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3103:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_point_bs_ts_, float), true, true, false, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3103:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3103:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3104:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_, float), false, false, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3104:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_, float), false, false, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3104:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3104:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3105:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_bs_, float), true, false, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3105:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_bs_, float), true, false, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3105:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3105:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3106:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_ts_, float), false, true, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3106:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_ts_, float), false, true, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3106:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3106:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3107:1: warning: variable 'uv_len' is used uninitialized whenever 'if' condition is false
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_bs_ts_, float), true, true, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:526:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^~~~~~~~
program_source:3107:1: note: uninitialized use occurs here
OSKAR_XCORR_SCALAR_GPU( M_CAT(xcorr_scalar_gaussian_bs_ts_, float), true, true, true, float, float2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:534:9: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (uv_len < uv_min_lambda || uv_len > uv_max_lambda) return;
^~~~~~
program_source:3107:1: note: remove the 'if' if its condition is always true
program_source:526:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
if (tid == 0) {
^
program_source:3107:1: note: variable 'uv_len' is declared here
program_source:522:5: note: expanded from macro 'OSKAR_XCORR_SCALAR_GPU'
LOCAL FP uv_len, uu, vv, ww, uu2, vv2, uuvv, du, dv, dw;
^
program_source:2982:15: note: expanded from macro 'LOCAL'
#define LOCAL local
^
program_source:3120:1: error: variables in the local address space can only be declared in the outermost scope of a kernel function
OSKAR_GRID_TILE_GRID_WPROJ_GPU( M_CAT(grid_tile_grid_wproj_, float), float, float2)
^
program_source:876:23: note: expanded from macro 'OSKAR_GRID_TILE_GRID_WPROJ_GPU'
WARP_DECL(int i_vis);
^
program_source:3121:1: error: variables in the local address space can only be declared in the outermost scope of a kernel function
OSKAR_GRID_TILE_GRID_SIMPLE_GPU( M_CAT(grid_tile_grid_simple_, float), float, float2)
^
program_source:759:23: note: expanded from macro 'OSKAR_GRID_TILE_GRID_SIMPLE_GPU'
WARP_DECL(int i_vis);
^
E|
E|== ERROR: clBuildProgram error (-11).
E|
|
=|== OSKAR-2.7.6 starting at 2021-10-10, 14:41:51 (CST).
|
| + Current dir is /Users/zhuyongkai/scidata/oskar-test
| + Logging to file oskar_2021-10-10_144151.log
|
=|== Loaded settings file 'oskar.ini'
|
| + Simulator settings
| - Use double precision : false
| - Use GPUs : true
| - CUDA device IDs to use
| - Number of compute devices : auto
| - Max. number of sources per chunk : 6384
| + Sky model settings
| - OSKAR sky model file settings
| * OSKAR sky model file(s): skymodel/201911202136_ptrs2000fov1img1800Tbmin0-min10_158.00.osm
| + Observation settings
| - Phase centre RA [deg] : 0.0
| - Phase centre Dec [deg] : -27.0
| - Start frequency [Hz] : 158000000.0
| - Number of frequency channels : 1
| - Frequency increment [Hz] : 1.0
| - Start time (UTC) : 2000-01-01T06:30:00.0
| - Observation length [sec, or hh:mm:ss]: 21600.0
| - Number of time steps : 72
| + Telescope model settings
| - Input directory : telescope_model/ska1low.tm
| - Normalise beams at phase centre : true
| - Allow station beam duplication : false
| - Polarisation mode : Scalar
| - Station type : Aperture array
| + Interferometer settings
| - Channel bandwidth [Hz] : 80000.0
| - Time average [sec] : 300.0
| - Max. time samples per block : 8
| - Correlation type : Cross-correlations
| - Output OSKAR visibility file
| - Output Measurement Set : visibility/test.ms
| - Force polarised Measurement Set : false
|
=|== Sky model set-up
|
| + Loading OSKAR sky model file 'skymodel/201911202136_ptrs2000fov1img1800Tbmin0-min10_158.00.osm' ...
| - done.
|
=|== Sky model summary
|
| + Num. sources : 8567
| + Num. chunks : 2
|
=|== Telescope model summary
|
| + Longitude [deg] : 116.764
| + Latitude [deg] : -26.825
| + Altitude [m] : 0
| + Num. stations : 512
| + Max station size : 256
| + Max station depth : 1
| + Identical stations : false
E|
E|== ERROR: clEnqueueFillBuffer() error (-36)
E|
E|
E|== ERROR: Run failed with code -3: invalid function argument.
E|
|
=|== OSKAR-2.7.6 ending at 2021-10-10, 14:41:52 (CST).
|
from oskar.
Hi, thanks for the report! Unfortunately we have no access to M1 hardware, so we do not expect to be able to support it, but I'll try to make a speculative fix based on the error.
from oskar.
I've now pushed a change to the master branch that may fix this. If you're comfortable building from source and have the chance to test the current Git master, please give it a try again and let us know how it goes.
from oskar.
Hi, thank you for the fix. We will test the build and get back with updates.
from oskar.
Related Issues (20)
- Unit Tests failing after successful installation of latest version HOT 5
- Add station metadata to Measurement Set HOT 3
- Images in angular coordinates HOT 7
- Simulation input not taking two separate sky inputs HOT 9
- Spectral variation across input image cube HOT 1
- Normalise beam at phase does not work for oskarpy HOT 1
- Query regarding Station Beams
- Possible OSKAR output issue on macOS with OpenCL HOT 1
- Core dump on imager with w-proj algorithm while converting HOT 1
- CUDA versions HOT 2
- W-kernel from the imager HOT 1
- Try to port the project to ROCm HOT 3
- RuntimeError("OSKAR library not found.") HOT 3
- ERROR: Run failed with code 209: no kernel image is available for execution on the device HOT 2
- Import custom beams into fit_element / format of the cst files HOT 2
- Writing data into a Measurement Set HOT 2
- Running the code with one station giving error
- Beam Pointing in "Aperture Array" Station type
- Addition of custom telescope name
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oskar.