
On 10/30/2016 12:29 PM, Larry Evans wrote:
On 10/30/2016 10:40 AM, Larry Evans wrote:
On 10/30/2016 07:45 AM, Larry Evans wrote:
Michael, the latest revision of the code, when run, aborts when running the SSEopt_vec method, as detailed here:
https://github.com/cppljevans/soa/blob/master/soa_compare.benchmark.cpp#L953
Would you have some idea what's causing that?
[snip] After rebooting, the SSEopt_vec method now runs without problem. I've no idea what was causing errors before the reboot :(
I suspect the problem was a wrong bit_vector definition. Hopefully the lastest push will solve problem.
Was going to suggest that bit_vector might be the problem I'm not sure where the alternative implementation came from but it needs to be something about like this as a minimum. #ifdef HAVE_GOON_BIT_VECTOR using goon::bit_vector; #else struct bit_vector { void resize( size_t num_bits, bool value = false ) { size_t num_blocks = (num_bits + 63) / 64; constexpr uint64_t block_none = 0; constexpr uint64_t block_all = ~block_none; data_m.resize( num_blocks, value ? block_all : block_none ); num_bits_m = num_bits; } uint64_t * data() { return data_m.data(); } std::size_t size() const { return num_bits_m; } std::vector<uint64_t> data_m; std::size_t num_bits_m; }; #endif