numenta / nupic-legacy

Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.
http://numenta.org/
GNU Affero General Public License v3.0
6.34k stars 1.56k forks source link

review the hand-crafted ASM code in the codebase #1068

Closed rhyolight closed 6 years ago

rhyolight commented 10 years ago

From: https://issues.numenta.org/browse/NPC-321

Some files in our codebase include hand-tuned assembly code (that mostly utilizes SSE instructions) :

$ grep -R 'mov ' | egrep -v '.git|Makefile.in|external'
nta/algorithms/svm.hpp:                   mov eax, f
nta/algorithms/svm.hpp:                   mov d, edx
nta/algorithms/svm_t.hpp:        mov     esi, x
nta/algorithms/svm_t.hpp:        mov     edi, y
nta/math/array_algo.hpp:      mov eax, f
nta/math/array_algo.hpp:        mov c, ecx
nta/math/array_algo.hpp:        mov d, edx

These files provide speed optimizations (super good!!), but have several disadvantages:

Steps I'd like to propose:

  1. Can we use an optimized library's functions instead? ( https://issues.numenta.org/browse/NPC-320 )
  2. port the ASM to 64bits, linux too
  3. moaaahr optimizationz!! :)
rhyolight commented 8 years ago

Please review this issue

This issue needs to be reviewed by the original author or another contributor for applicability to the current codebase. The issue might be obsolete or need updating to match current standards and practices. If the issue is out of date, please close. Otherwise please leave a comment to justify its continuing existence. It may be closed in the future if no further activity is noted.