{"action":"created","issue":{"url":"https://api.github.com/repos/numenta/nupic.core/issues/381","labels_url":"https://api.github.com/repos/numenta/nupic.core/issues/381/labels{/name}","comments_url":"https://api.github.com/repos/numenta/nupic.core/issues/381/comments","events_url":"https://api.github.com/repos/numenta/nupic.core/issues/381/events","html_url":"https://github.com/numenta/nupic.core/issues/381","id":59408576,"number":381,"title":"remove ASM code with no benefits","user":{"login":"breznak","id":2166111,"avatar_url":"https://avatars.githubusercontent.com/u/2166111?v=3","gravatar_id":"","url":"https://api.github.com/users/breznak","html_url":"https://github.com/breznak","followers_url":"https://api.github.com/users/breznak/followers","following_url":"https://api.github.com/users/breznak/following{/other_user}","gists_url":"https://api.github.com/users/breznak/gists{/gist_id}","starred_url":"https://api.github.com/users/breznak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/breznak/subscriptions","organizations_url":"https://api.github.com/users/breznak/orgs","repos_url":"https://api.github.com/users/breznak/repos","events_url":"https://api.github.com/users/breznak/events{/privacy}","received_events_url":"https://api.github.com/users/breznak/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/numenta/nupic.core/labels/cleanup","name":"cleanup","color":"c7def8"},{"url":"https://api.github.com/repos/numenta/nupic.core/labels/optimization","name":"optimization","color":"58AFAE"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/numenta/nupic.core/milestones/42","html_url":"https://github.com/numenta/nupic.core/milestones/0.5.0:%20Clean%20code","labels_url":"https://api.github.com/repos/numenta/nupic.core/milestones/42/labels","id":995922,"number":42,"title":"0.5.0: Clean code","description":"","creator":{"login":"rhyolight","id":15566,"avatar_url":"https://avatars.githubusercontent.com/u/15566?v=3","gravatar_id":"","url":"https://api.github.com/users/rhyolight","html_url":"https://github.com/rhyolight","followers_url":"https://api.github.com/users/rhyolight/followers","following_url":"https://api.github.com/users/rhyolight/following{/other_user}","gists_url":"https://api.github.com/users/rhyolight/gists{/gist_id}","starred_url":"https://api.github.com/users/rhyolight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhyolight/subscriptions","organizations_url":"https://api.github.com/users/rhyolight/orgs","repos_url":"https://api.github.com/users/rhyolight/repos","events_url":"https://api.github.com/users/rhyolight/events{/privacy}","received_events_url":"https://api.github.com/users/rhyolight/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":0,"state":"open","created_at":"2015-02-25T21:37:15Z","updated_at":"2015-03-02T19:41:57Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-03-01T17:40:19Z","updated_at":"2015-03-03T01:20:16Z","closed_at":null,"body":"During my experiments I figured the hand-tuned ASM code (in ArrayAlgo.hpp, ...) actually has no benefit over pure c++ code, as\r\n\r\n* compilers progressed over the time\r\n* we use compiler optimizations now\r\n\r\nthe benefits of this change are:\r\n\r\n* speed ~0%\r\n* portability++\r\n* clean code++\r\n\r\nReference: #236 #382 \r\n\r\nI tested my on: \r\n* gcc 4.8 + LTO + O3, clang 3.5, gcc 4.8 defaults\r\n* with/without ASM code (-DNTA_ASM)\r\n* simple TP.compute() loop, CLA model with SP+TP+anomaly detection on ~20k records\r\n\r\nResults:\r\n\r\nfull : https://gist.github.com/breznak/4eb73459b05c03ebbc1c\r\n\r\n* gcc 4.8, optimized (-O3, -flto):\r\n  - * ASM: `20000  191.310    0.010  191.310    0.010 {_algorithms.Cells4_compute}`\r\n  - * NO ASM: `20000  200.184    0.010  200.184    0.010 {_algorithms.Cells4_compute}`\r\n* clang 3.5 (-O3):\r\n  - * ASM: `20000  225.019    0.011  225.019    0.011 {_algorithms.Cells4_compute}`\r\n  - * NO ASM: `20000  222.895    0.011  222.895    0.011 {_algorithms.Cells4_compute}`\r\n* gcc 4.8 (defaults, -O2, used for binary releases):\r\n  - * ASM: `20000  232.067    0.012  232.067    0.012 {_algorithms.Cells4_compute}`\r\n  - * NO ASM: `20000  226.108    0.011  226.108    0.011 {_algorithms.Cells4_compute}`"},"comment":{"url":"https://api.github.com/repos/numenta/nupic.core/issues/comments/76867983","html_url":"https://github.com/numenta/nupic.core/issues/381#issuecomment-76867983","issue_url":"https://api.github.com/repos/numenta/nupic.core/issues/381","id":76867983,"user":{"login":"rhyolight","id":15566,"avatar_url":"https://avatars.githubusercontent.com/u/15566?v=3","gravatar_id":"","url":"https://api.github.com/users/rhyolight","html_url":"https://github.com/rhyolight","followers_url":"https://api.github.com/users/rhyolight/followers","following_url":"https://api.github.com/users/rhyolight/following{/other_user}","gists_url":"https://api.github.com/users/rhyolight/gists{/gist_id}","starred_url":"https://api.github.com/users/rhyolight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhyolight/subscriptions","organizations_url":"https://api.github.com/users/rhyolight/orgs","repos_url":"https://api.github.com/users/rhyolight/repos","events_url":"https://api.github.com/users/rhyolight/events{/privacy}","received_events_url":"https://api.github.com/users/rhyolight/received_events","type":"User","site_admin":false},"created_at":"2015-03-03T01:20:16Z","updated_at":"2015-03-03T01:20:16Z","body":"@breznak Just making sure I do this right... I'll need to swarm over that file to get a description.py, right? Then run_opf_experiment.py on the description.py?"}}