Project

General

Profile

Bug #494

nonbonded SSE kernels get passed double instead of float

Added by Szilárd Páll over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Erik Lindahl
Category:
mdrun
Target version:
Affected version - extra info:
Affected version:
Difficulty:
uncategorized
Close

Description

When compiling mdrun in double precision mode a large number of warning at the compilation of nonbonded SSE kernels suggests that double pointers are passed to float pointer parameters:

[...]
/tmp/psz/gmx-release-4.5/src/gmxlib/nonbonded/nb_kernel_x86_64_sse/nb_kernel_allvsallgb_sse2_single.c: In function 'nb_kernel_allvsallgb_sse2_single':
/tmp/psz/gmx-release-4.5/src/gmxlib/nonbonded/nb_kernel_x86_64_sse/nb_kernel_allvsallgb_sse2_single.c:686: warning: passing argument 1 of '_mm_load1_ps' from incompatible pointer type
/afs/pdc.kth.se/pdc/vol/gcc/4.4.1/@sys/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include/xmmintrin.h:884: note: expected 'const float *' but argument is of type 'real *'
/tmp/psz/gmx-release-4.5/src/gmxlib/nonbonded/nb_kernel_x86_64_sse/nb_kernel_allvsallgb_sse2_single.c:687: warning: passing argument 1 of '_mm_load1_ps' from incompatible pointer type
[...]

History

#1 Updated by Erik Lindahl over 9 years ago

Are you configuring with cmake? With autoconf the single-precision directory shouldn't be included when --enable-double is used.

#2 Updated by Szilárd Páll over 9 years ago

(In reply to comment #1)

Are you configuring with cmake? With autoconf the single-precision directory
shouldn't be included when --enable-double is used.

Yes, I am. One more issue with CMake...

#3 Updated by Erik Lindahl over 9 years ago

There's nothing wrong with the call sequence, but Cmake incorrectly included all the single precision kernels when double was requested. Committed to the release-4-5-patches branch.

Also available in: Atom PDF