mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-10-30 23:47:31 +03:00 
			
		
		
		
	precompute_hiddens/Parser: do not look up CPU ops (3.4) (#11069)
* precompute_hiddens/Parser: do not look up CPU ops
`get_ops("cpu")` is quite expensive. To avoid this, we want to cache the
result as in #11068. However, for 3.x we do not want to change the ABI.
So we avoid the expensive lookup by using NumpyOps. This should have a
minimal impact, since `get_ops("cpu")` was only used when the model ops
were `CupyOps`. If the ops are `AppleOps`, we are still passing through
the correct BLAS implementation.
* _NUMPY_OPS -> NUMPY_OPS
			
			
This commit is contained in:
		
							parent
							
								
									78a84f0d78
								
							
						
					
					
						commit
						a06cbae70d
					
				|  | @ -441,7 +441,7 @@ cdef class precompute_hiddens: | |||
| 
 | ||||
|         cdef CBlas cblas | ||||
|         if isinstance(self.ops, CupyOps): | ||||
|             cblas = get_ops("cpu").cblas() | ||||
|             cblas = NUMPY_OPS.cblas() | ||||
|         else: | ||||
|             cblas = self.ops.cblas() | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ from libc.stdlib cimport calloc, free | |||
| import random | ||||
| 
 | ||||
| import srsly | ||||
| from thinc.api import get_ops, set_dropout_rate, CupyOps | ||||
| from thinc.api import get_ops, set_dropout_rate, CupyOps, NumpyOps | ||||
| from thinc.extra.search cimport Beam | ||||
| import numpy.random | ||||
| import numpy | ||||
|  | @ -30,6 +30,9 @@ from ..errors import Errors, Warnings | |||
| from .. import util | ||||
| 
 | ||||
| 
 | ||||
| NUMPY_OPS = NumpyOps() | ||||
| 
 | ||||
| 
 | ||||
| cdef class Parser(TrainablePipe): | ||||
|     """ | ||||
|     Base class of the DependencyParser and EntityRecognizer. | ||||
|  | @ -262,7 +265,7 @@ cdef class Parser(TrainablePipe): | |||
|         ops = self.model.ops | ||||
|         cdef CBlas cblas | ||||
|         if isinstance(ops, CupyOps): | ||||
|             cblas = get_ops("cpu").cblas() | ||||
|             cblas = NUMPY_OPS.cblas() | ||||
|         else: | ||||
|             cblas = ops.cblas() | ||||
|         self._ensure_labels_are_added(docs) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user