July 01, 2013
Thanks Manu, I think I understand. Quick questions, so I've updated my test to allow for loop unrolling http://dpaste.dzfl.pl/12933bc8 as the calculation is done over an array of elements and does not depend on the last operation. My problem is that the program reports using 0 time. However, as soon as I start printing out elements the time then jumps to looking more realistic. However, even if I print the elements of the list after I print the calculation operation, I still get zero seconds. Like:

1: calc time
2: do operations
3: print time delta (result:0 time)
4: print all values from operation

1: calc time
2: do operations
3: print all values from operation
4: print time delta (result:large time delta actually shown)

Is D performing operations lazily by default or am I missing something?
July 01, 2013
On Monday, 1 July 2013 at 17:19:02 UTC, Jonathan Dunlap wrote:
> Thanks Manu, I think I understand. Quick questions, so I've updated my test to allow for loop unrolling http://dpaste.dzfl.pl/12933bc8

The loop body in testSimd doesn't do anything. This line:

auto di = d[i];

copies the vector, it does not reference it.
July 01, 2013
Thanks Jerro, I went ahead and used a pointer reference to ensure it's being saved back into the array (http://dpaste.dzfl.pl/52710926). Two things:
1) still showing zero time delta
2) On windows 7 x74, using a SAMPLE_AT size of 30000 or higher will cause the program to immediately quit with no output at all. Even the first statement of writeln in the constructor doesn't execute.
July 02, 2013
Maybe make the arrays public? it's conceivable the optimiser could
eliminate all that code, since it can prove the results are never
referenced...
I doubt that's the problem though, just a first guess.

On 2 July 2013 09:14, Jonathan Dunlap <jadit2@gmail.com> wrote:

> Thanks Jerro, I went ahead and used a pointer reference to ensure it's
> being saved back into the array (http://dpaste.dzfl.pl/**52710926<http://dpaste.dzfl.pl/52710926>).
> Two things:
> 1) still showing zero time delta
> 2) On windows 7 x74, using a SAMPLE_AT size of 30000 or higher will cause
> the program to immediately quit with no output at all. Even the first
> statement of writeln in the constructor doesn't execute.
>


July 02, 2013
Jonathan Dunlap:

> Thanks Jerro, I went ahead and used a pointer reference to ensure it's being saved back into the array (http://dpaste.dzfl.pl/52710926). Two things:
> 1) still showing zero time delta
> 2) On windows 7 x74, using a SAMPLE_AT size of 30000 or higher will cause the program to immediately quit with no output at all. Even the first statement of writeln in the constructor doesn't execute.

Have you taken a look at the asm?

Bye,
bearophile
July 04, 2013
On Saturday, 22 June 2013 at 16:04:26 UTC, jerro wrote:

> I have actually run that benchmark with the code from this branch:
>
> https://github.com/jerro/pfft/tree/experimental
>

Hello, did you propose your pfft library as a replacement in std.numeric ?
July 04, 2013
> Hello, did you propose your pfft library as a replacement in std.numeric ?

I have thought about it, but haven't gotten around to doing it yet. I'd like to finish support for multidimensional transforms first.
1 2 3 4 5
Next ›   Last »