{"action":"created","issue":{"url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/730","labels_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/730/labels{/name}","comments_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/730/comments","events_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/730/events","html_url":"https://github.com/xianyi/OpenBLAS/issues/730","id":124611697,"number":730,"title":"Suprisingly slow `dsyrk` on Mac","user":{"login":"jakirkham","id":3019665,"avatar_url":"https://avatars.githubusercontent.com/u/3019665?v=3","gravatar_id":"","url":"https://api.github.com/users/jakirkham","html_url":"https://github.com/jakirkham","followers_url":"https://api.github.com/users/jakirkham/followers","following_url":"https://api.github.com/users/jakirkham/following{/other_user}","gists_url":"https://api.github.com/users/jakirkham/gists{/gist_id}","starred_url":"https://api.github.com/users/jakirkham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jakirkham/subscriptions","organizations_url":"https://api.github.com/users/jakirkham/orgs","repos_url":"https://api.github.com/users/jakirkham/repos","events_url":"https://api.github.com/users/jakirkham/events{/privacy}","received_events_url":"https://api.github.com/users/jakirkham/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2016-01-02T21:16:14Z","updated_at":"2016-01-08T21:32:27Z","closed_at":null,"body":"Here is an example on Mac OS 10.9 on a Late 2013 MacBook Pro 15\" with a 2.3 GHz Intel Core i7-4850HQ using OpenBLAS 0.2.15, Python 2.7.11, NumPy 1.10.2, SciPy 0.16.1. I have verified that NumPy and SciPy are properly linked to the version of OpenBLAS specified. OpenBLAS has built with dynamic architecture in all cases and is running single threaded in all cases.\r\n\r\n    >>> import numpy\r\n    >>> from scipy.linalg import blas\r\n    >>> a = numpy.ones((100,101), dtype=numpy.float32)\r\n    >>> %timeit blas.ssyrk(1, a)\r\n    10000 loops, best of 3: 37.8 µs per loop\r\n    >>> a = numpy.ones((100,101), dtype=numpy.float64)\r\n    >>> %timeit blas.dsyrk(1, a)\r\n    1000 loops, best of 3: 520 µs per loop\r\n\r\nI wouldn't be surprised to see it takes twice as a long due to the fact that it is double versus single precision; however, taking over an order of magnitude longer seems to be a bit much.\r\n\r\nFollowing the same build procedure on a Linux VM on the same machine, I get a much more reasonable time for `dsyrk` (around double `ssyrk`). I have no idea whether this carries over to Windows or not. If someone is able to reproduce a similar example using C or Fortran, please share your steps."},"comment":{"url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/comments/170133067","html_url":"https://github.com/xianyi/OpenBLAS/issues/730#issuecomment-170133067","issue_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/730","id":170133067,"user":{"login":"njsmith","id":609896,"avatar_url":"https://avatars.githubusercontent.com/u/609896?v=3","gravatar_id":"","url":"https://api.github.com/users/njsmith","html_url":"https://github.com/njsmith","followers_url":"https://api.github.com/users/njsmith/followers","following_url":"https://api.github.com/users/njsmith/following{/other_user}","gists_url":"https://api.github.com/users/njsmith/gists{/gist_id}","starred_url":"https://api.github.com/users/njsmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/njsmith/subscriptions","organizations_url":"https://api.github.com/users/njsmith/orgs","repos_url":"https://api.github.com/users/njsmith/repos","events_url":"https://api.github.com/users/njsmith/events{/privacy}","received_events_url":"https://api.github.com/users/njsmith/received_events","type":"User","site_admin":false},"created_at":"2016-01-08T21:32:27Z","updated_at":"2016-01-08T21:32:27Z","body":"If threads are disabled then it's not the same pathological corner case as in #731. I suspect that pattern of slowing down at a particular range of sizes may mean something to someone who knows openblas internals, but that's not me :-)."}}