{"action":"created","issue":{"url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/751","labels_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/751/labels{/name}","comments_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/751/comments","events_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/751/events","html_url":"https://github.com/xianyi/OpenBLAS/issues/751","id":128311590,"number":751,"title":"Improve _gbmv for small data sizes","user":{"login":"brada4","id":16061801,"avatar_url":"https://avatars.githubusercontent.com/u/16061801?v=3","gravatar_id":"","url":"https://api.github.com/users/brada4","html_url":"https://github.com/brada4","followers_url":"https://api.github.com/users/brada4/followers","following_url":"https://api.github.com/users/brada4/following{/other_user}","gists_url":"https://api.github.com/users/brada4/gists{/gist_id}","starred_url":"https://api.github.com/users/brada4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brada4/subscriptions","organizations_url":"https://api.github.com/users/brada4/orgs","repos_url":"https://api.github.com/users/brada4/repos","events_url":"https://api.github.com/users/brada4/events{/privacy}","received_events_url":"https://api.github.com/users/brada4/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-23T07:28:02Z","updated_at":"2016-01-27T23:03:01Z","closed_at":"2016-01-27T23:03:00Z","body":"Dont start threads for small cases to avoid thread signaling latency and to not thrash cache of typical cpu core of today.\r\n\r\ninterface/gbmv.c\r\n```\r\n#ifdef SMP\r\n   nthreads = num_cpu_avail(2);\r\n+  if (trans) {\r\n+    if(sizeof(FLOAT)*(lda*n+(m-1)*abs(incx)+(n-1)*abs(incy))<2*1024*1024) nthreads=1;\r\n+  } else {\r\n+    if(sizeof(FLOAT)*(lda*n+(n-1)*abs(incx)+(m-1)*abs(incy))<2*1024*1024) nthreads=1;\r\n+  }\r\n \r\n   if (nthreads == 1) {\r\n #endif\r\n```"},"comment":{"url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/comments/175903612","html_url":"https://github.com/xianyi/OpenBLAS/issues/751#issuecomment-175903612","issue_url":"https://api.github.com/repos/xianyi/OpenBLAS/issues/751","id":175903612,"user":{"login":"brada4","id":16061801,"avatar_url":"https://avatars.githubusercontent.com/u/16061801?v=3","gravatar_id":"","url":"https://api.github.com/users/brada4","html_url":"https://github.com/brada4","followers_url":"https://api.github.com/users/brada4/followers","following_url":"https://api.github.com/users/brada4/following{/other_user}","gists_url":"https://api.github.com/users/brada4/gists{/gist_id}","starred_url":"https://api.github.com/users/brada4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brada4/subscriptions","organizations_url":"https://api.github.com/users/brada4/orgs","repos_url":"https://api.github.com/users/brada4/repos","events_url":"https://api.github.com/users/brada4/events{/privacy}","received_events_url":"https://api.github.com/users/brada4/received_events","type":"User","site_admin":false},"created_at":"2016-01-27T23:03:00Z","updated_at":"2016-01-27T23:03:00Z","body":"Probably it is too hard if you have gift of GIT usage or your initials are $%, but if you look from the processors side at the memory it should clean those things up that it is not real32 around dynamically scaled frequencies, but about how far the next level cache goes and how much threads share that and so on and so on until we reach main memory, or run out of cores. Sorry for safe approximation for average case."}}