Benchmarking sigmoid function between C and D
Arun Chandrasekaran
aruncxy at gmail.com
Sat Apr 7 20:33:13 UTC 2018
On Saturday, 7 April 2018 at 19:14:27 UTC, Daniel Kozak wrote:
> or for ldc
> http://docs.algorithm.dlang.io/latest/mir_math_common.html
>
> On Sat, Apr 7, 2018 at 9:10 PM, Daniel Kozak
> <kozzi11 at gmail.com> wrote:
>
>> can you try it with c math functions?
>>
>> instead of std.math, try to use core.stdc.math
>>
>> On Sat, Apr 7, 2018 at 8:53 PM, Arun Chandrasekaran via
>> Digitalmars-d-learn <digitalmars-d-learn at puremagic.com> wrote:
>>
>>> [...]
Much better with mir.math.common, still a bit slower than C (even
with larger loops):
10^7 iterations using sigmoid1: 168 ms
10^7 iterations using sigmoid2: 39 ms
Also LDC optimized away the computation. So I had to modify the
code a bit.
```
private auto sigmoid1_perf() {
auto sw = StopWatch(AutoStart.yes);
int i;
float x, y = 0.0f;
for (i = 0; i < 10; i++) {
for (x = -5.0f; x <= 5.0f; x+=0.00001f) {
y += sigmoid1(x);
}
}
auto t = sw.peek.total!"msecs";
return tuple(y, t);
}
private auto sigmoid2_perf() {
auto sw = StopWatch(AutoStart.yes);
int i;
float x, y = 0.0f;
for (i = 0; i < 10; i++) {
for (x = -5.0f; x <= 5.0f; x+=0.00001f) {
y += sigmoid2(x);
}
}
auto t = sw.peek.total!"msecs";
return tuple(y, t);
}
```
More information about the Digitalmars-d-learn
mailing list