{"action":"opened","issue":{"url":"https://api.github.com/repos/rurban/smhasher/issues/16","repository_url":"https://api.github.com/repos/rurban/smhasher","labels_url":"https://api.github.com/repos/rurban/smhasher/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/rurban/smhasher/issues/16/comments","events_url":"https://api.github.com/repos/rurban/smhasher/issues/16/events","html_url":"https://github.com/rurban/smhasher/issues/16","id":174135017,"number":16,"title":"Absolute results are wrong","user":{"login":"vegorov1","id":21250269,"avatar_url":"https://avatars.githubusercontent.com/u/21250269?v=3","gravatar_id":"","url":"https://api.github.com/users/vegorov1","html_url":"https://github.com/vegorov1","followers_url":"https://api.github.com/users/vegorov1/followers","following_url":"https://api.github.com/users/vegorov1/following{/other_user}","gists_url":"https://api.github.com/users/vegorov1/gists{/gist_id}","starred_url":"https://api.github.com/users/vegorov1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vegorov1/subscriptions","organizations_url":"https://api.github.com/users/vegorov1/orgs","repos_url":"https://api.github.com/users/vegorov1/repos","events_url":"https://api.github.com/users/vegorov1/events{/privacy}","received_events_url":"https://api.github.com/users/vegorov1/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-08-30T21:50:41Z","updated_at":"2016-08-30T21:50:41Z","closed_at":null,"body":"Looking at timing again, it's all off. E.g. FNV-1a has one IMUL (3 cycles latency) and one XOR (1 cycle latency) applied serially on each byte. It just can't be faster than 4 cycles per byte. Time stamp counter in newer processors is time-based, it increments on constant rate that doesn't change when CPU boosts its frequency, it doesn't depend on CPU state. So RDTSC doesn't measure real cycles passed anymore, and benchmark can report speed in cycles faster than it really executes. On my desktop 3.5GHz Haswell CPU (3.8GHz with TurboBoost), reported speed is 1-3.5/3.8=8% faster than real speed. On laptops it's apparently far more different.\r\n\r\n\"MiB/sec @ 3 ghz\" is entirely wrong too. It's just the result of multiplication (bytes/cycle) * 3*10^9 / 1024^2, but bytes/cycle is wrong.\r\n\r\nSo while _relative_ benchmark results are sensible and useful, absolute results are incorrect."}}
{"actor":{"display_login":"vegorov1"}}