Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

llvm/gpu: Use more aggressive optimizations for GPU target #3109

Merged
merged 2 commits into from
Nov 11, 2024

Conversation

jvesely
Copy link
Collaborator

@jvesely jvesely commented Nov 11, 2024

Drop PTXExec execution mode.

@jvesely jvesely added compiler Runtime Compiler CUDA CUDA target for the runtime compiler labels Nov 11, 2024
Copy link

This PR causes the following changes to the html docs (ubuntu-latest-3.11):

diff -r docs-base/Composition.html docs-head/Composition.html
1946,1947d1945
< <li><p><a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXExec</span></code></a> – compile individual <a class="reference internal" href="Time.html#psyneulink.core.scheduling.time.TimeScale.TRIAL" title="psyneulink.core.scheduling.time.TimeScale.TRIAL"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">TRIAL</span></code></a>s  for execution on GPU
< (see <a class="reference internal" href="#composition-compilation-ptx"><span class="std std-ref">below</span></a> for additional details).</p></li>
1954,1960c1952,1956
< specifying either <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXRun" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXRun"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXRun</span></code></a> or <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXExec</span></code></a> oin the <strong>execution_mode</strong> argument
< of a <a class="reference internal" href="#composition-execution-methods"><span class="std std-ref">Composition execution method</span></a>, which are equivalent to the LLVM
< counterparts but run in a single thread of a CUDA capable GPU. This requires that a working <a class="reference external" href="https://documen.tician.de/pycuda/">pycuda package</a> is <a class="reference external" href="https://wiki.tiker.net/PyCuda/Installation">installed</a>, and that
< CUDA execution is explicitly enabled by setting the <code class="docutils literal notranslate"><span class="pre">PNL_LLVM_DEBUG</span></code> environment variable to <code class="docutils literal notranslate"><span class="pre">cuda</span></code>.  At present
< compilation using these modes runs on a single GPU thread, and therefore does not produce any performance benefits
< over running in compiled mode on a CPU;  (see <a class="reference external" href="https://github.com/PrincetonUniversity/PsyNeuLink/projects/1">this</a>
< for progress extending support of parallization in compiled modes).</p>
---
> specifying <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXRun" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXRun"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXRun</span></code></a> in the <strong>execution_mode</strong> argument of a <a class="reference internal" href="#composition-execution-methods"><span class="std std-ref">Composition execution
> method</span></a>, which are equivalent to the LLVM counterparts but run in a single
> thread of a CUDA capable GPU. This requires that a working <a class="reference external" href="https://documen.tician.de/pycuda/">pycuda package</a> is
> <a class="reference external" href="https://wiki.tiker.net/PyCuda/Installation">installed</a>, and that CUDA execution is not explicitly disabled by
> setting the <code class="docutils literal notranslate"><span class="pre">PNL_LLVM_DEBUG</span></code> environment variable to <code class="docutils literal notranslate"><span class="pre">nocuda</span></code>.</p>
5316c5312
< <li><p><strong>execution_mode</strong> (<em>enum.Enum</em><em>[</em><em>Auto</em><em>|</em><em>LLVM</em><em>|</em><em>LLVMexec</em><em>|</em><em>Python</em><em>|</em><em>PTXExec</em><em>] </em><em>: default Python</em>) – specifies whether to run using the Python interpreter or a <a class="reference internal" href="#composition-compilation"><span class="std std-ref">compiled mode</span></a>.
---
> <li><p><strong>execution_mode</strong> (<em>enum.Enum</em><em>[</em><em>Auto</em><em>|</em><em>LLVM</em><em>|</em><em>LLVMexec</em><em>|</em><em>Python</em><em>] </em><em>: default Python</em>) – specifies whether to run using the Python interpreter or a <a class="reference internal" href="#composition-compilation"><span class="std std-ref">compiled mode</span></a>.
diff -r docs-base/LLVM.html docs-head/LLVM.html
259,264d258
< <dt class="sig sig-object py" id="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec">
< <span class="sig-name descname"><span class="pre">PTXExec</span></span><a class="headerlink" href="#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="Permalink to this definition">¶</a></dt>
< <dd><p>compile and run each <a class="reference internal" href="Time.html#psyneulink.core.scheduling.time.TimeScale.TRIAL" title="psyneulink.core.scheduling.time.TimeScale.TRIAL"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">TRIAL</span></code></a> using CUDA for GPU.</p>
< </dd></dl>
< 
< <dl class="py attribute">
diff -r docs-base/ModulatoryProjection.html docs-head/ModulatoryProjection.html
272c272
< <a class="reference internal" href="Port.html"><span class="doc">Port</span></a> are listed in the Port’s <a class="reference internal" href="ParameterPort.html#psyneulink.core.components.ports.parameterport.ParameterPort.mod_afferents" title="psyneulink.core.components.ports.parameterport.ParameterPort.mod_afferents"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">mod_afferents</span></code></a> attribute.</p>
---
> <a class="reference internal" href="Port.html"><span class="doc">Port</span></a> are listed in the Port’s <a class="reference internal" href="Mechanism.html#id7" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.mod_afferents"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">mod_afferents</span></code></a> attribute.</p>
diff -r docs-base/Port.html docs-head/Port.html
616c616
< <code class="xref any docutils literal notranslate"><span class="pre">PathWayProjections</span></code> (listed in its <a class="reference internal" href="#psyneulink.core.components.ports.port.Port_Base.path_afferents" title="psyneulink.core.components.ports.port.Port_Base.path_afferents"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">path_afferents</span></code></a> attribute) as the variable for its
---
> <code class="xref any docutils literal notranslate"><span class="pre">PathWayProjections</span></code> (listed in its <a class="reference internal" href="Mechanism.html#id6" title="psyneulink.core.components.mechanisms.mechanism.Mechanism_Base.path_afferents"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">path_afferents</span></code></a> attribute) as the variable for its
diff -r docs-base/TransferFunctions.html docs-head/TransferFunctions.html
2199c2199
< <p><a class="reference internal" href="OptimizationFunctions.html#psyneulink.core.components.functions.optimizationfunctions.GradientOptimization.bounds" title="psyneulink.core.components.functions.optimizationfunctions.GradientOptimization.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a> – specifies the lower and upper limits of the result;  if there are none, the attribute is set to
---
> <p><a class="reference internal" href="#psyneulink.core.components.functions.transferfunctions.Exponential.bounds" title="psyneulink.core.components.functions.transferfunctions.Exponential.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a> – specifies the lower and upper limits of the result;  if there are none, the attribute is set to
diff -r docs-base/genindex.html docs-head/genindex.html
5011,5012d5010
<       <li><a href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec">PTXExec (psyneulink.core.llvm.__init__.ExecutionMode attribute)</a>
< </li>
Binary files docs-base/objects.inv and docs-head/objects.inv differ
diff -r docs-base/searchindex.js docs-head/searchindex.js
1c1
< Search.setIndex({docnames:["AGT","AGTControlMechanism","AutoAssociativeLearningMechanism","AutoAssociativeProjection","AutodiffComposition","BasicsAndPrimer","BeukersNBackModel","BeukersNBackModel_NB","BotvinickConflictMonitoringModel","BustamanteStroopXORLVOCModel","Cohen_HustonModel","CombinationFunctions","ComparatorMechanism","Compilation","Component","Components","Composition","CompositionFunctionApproximator","CompositionInterfaceMechanism","Compositions","Condition","Context","ContrastiveHebbianMechanism","ContributorsGuide","ControlMechanism","ControlMechanisms","ControlProjection","ControlProjections","ControlSignal","ConventionsAndDefinitions","Core","DDM","DefaultControlMechanism","Defaults","DistributionFunctions","EMComposition","EVC","EVCAuxiliary","EVCControlMechanism","EpisodicMemoryMechanism","Function","Functions","GatingMechanism","GatingMechanisms","GatingProjection","GatingProjections","GatingSignal","GilzenratModel","InputPort","IntegratorFunctions","IntegratorMechanism","IntegratorMechanisms","KWTAMechanism","Keywords","KohonenMechanism","LCAMechanism","LCControlMechanism","LCMechanism","LLVM","LeabraMechanism","LearningFunctions","LearningMechanism","LearningMechanisms","LearningProjection","LearningProjections","LearningSignal","Library","Log","MappingProjection","MaskedMappingProjection","Mechanism","Mechanisms","MemoryFunctions","Models","ModulatoryMechanism","ModulatoryMechanisms","ModulatoryProjection","ModulatoryProjections","ModulatorySignal","MontagueModel","NieuwenhuisModel","NonStatefulFunctions","ObjectiveFunctions","ObjectiveMechanism","ObjectiveMechanisms","OptimizationControlMechanism","OptimizationFunctions","OutputPort","PCTC_model","ParameterEstimationComposition","ParameterPort","Parameters","Pathway","PathwayProjection","PathwayProjections","Port","PredictionErrorMechanism","Preferences","ProcessingMechanism","ProcessingMechanisms","Projection","Projections","QuickReference","RecurrentTransferMechanism","RefactoredLearningGuide","Registry","RegressionCFA","Report","Scheduler","Scheduling","SelectionFunctions","Services","StatefulFunction","StatefulFunctions","Subystems","Time","TransferFunctions","TransferMechanism","TransferMechanisms","UserDefinedFunction","UserGuide","UserGuide_TBD","Visualization","globals","index","index_logo_with_text","mdf","nback_nb"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["AGT.rst","AGTControlMechanism.rst","AutoAssociativeLearningMechanism.rst","AutoAssociativeProjection.rst","AutodiffComposition.rst","BasicsAndPrimer.rst","BeukersNBackModel.rst","BeukersNBackModel_NB.rst","BotvinickConflictMonitoringModel.rst","BustamanteStroopXORLVOCModel.rst","Cohen_HustonModel.rst","CombinationFunctions.rst","ComparatorMechanism.rst","Compilation.rst","Component.rst","Components.rst","Composition.rst","CompositionFunctionApproximator.rst","CompositionInterfaceMechanism.rst","Compositions.rst","Condition.rst","Context.rst","ContrastiveHebbianMechanism.rst","ContributorsGuide.rst","ControlMechanism.rst","ControlMechanisms.rst","ControlProjection.rst","ControlProjections.rst","ControlSignal.rst","ConventionsAndDefinitions.rst","Core.rst","DDM.rst","DefaultControlMechanism.rst","Defaults.rst","DistributionFunctions.rst","EMComposition.rst","EVC.rst","EVCAuxiliary.rst","EVCControlMechanism.rst","EpisodicMemoryMechanism.rst","Function.rst","Functions.rst","GatingMechanism.rst","GatingMechanisms.rst","GatingProjection.rst","GatingProjections.rst","GatingSignal.rst","GilzenratModel.rst","InputPort.rst","IntegratorFunctions.rst","IntegratorMechanism.rst","IntegratorMechanisms.rst","KWTAMechanism.rst","Keywords.rst","KohonenMechanism.rst","LCAMechanism.rst","LCControlMechanism.rst","LCMechanism.rst","LLVM.rst","LeabraMechanism.rst","LearningFunctions.rst","LearningMechanism.rst","LearningMechanisms.rst","LearningProjection.rst","LearningProjections.rst","LearningSignal.rst","Library.rst","Log.rst","MappingProjection.rst","MaskedMappingProjection.rst","Mechanism.rst","Mechanisms.rst","MemoryFunctions.rst","Models.rst","ModulatoryMechanism.rst","ModulatoryMechanisms.rst","ModulatoryProjection.rst","ModulatoryProjections.rst","ModulatorySignal.rst","MontagueModel.rst","NieuwenhuisModel.rst","NonStatefulFunctions.rst","ObjectiveFunctions.rst","ObjectiveMechanism.rst","ObjectiveMechanisms.rst","OptimizationControlMechanism.rst","OptimizationFunctions.rst","OutputPort.rst","PCTC_model.rst","ParameterEstimationComposition.rst","ParameterPort.rst","Parameters.rst","Pathway.rst","PathwayProjection.rst","PathwayProjections.rst","Port.rst","PredictionErrorMechanism.rst","Preferences.rst","ProcessingMechanism.rst","ProcessingMechanisms.rst","Projection.rst","Projections.rst","QuickReference.rst","RecurrentTransferMechanism.rst","RefactoredLearningGuide.rst","Registry.rst","RegressionCFA.rst","Report.rst","Scheduler.rst","Scheduling.rst","SelectionFunctions.rst","Services.rst","StatefulFunction.rst","StatefulFunctions.rst","Subystems.rst","Time.rst","TransferFunctions.rst","TransferMechanism.rst","TransferMechanisms.rst","UserDefinedFunction.rst","UserGuide.rst","UserGuide_TBD.rst","Visualization.rst","globals.rst","index.rst","index_logo_with_text.rst","mdf.rst","nback_nb.ipynb"],objects:{"psyneulink.core.components":{component:[14,0,0,"-"]},"psyneulink.core.components.component":{Component:[14,1,1,""]},"psyneulink.core.components.component.Component":{"function":[14,4,1,""],_check_args:[14,2,1,""],_check_for_composition:[14,2,1,""],_deferred_init:[14,2,1,""],_dependent_components:[14,3,1,""],_get_allowed_arguments:[14,2,1,""],_get_param_value_from_tuple:[14,2,1,""],_handle_default_variable:[14,2,1,""],_handle_input_shapes:[14,2,1,""],_initialize_parameters:[14,2,1,""],_instantiate_defaults:[14,2,1,""],_instantiate_function:[14,2,1,""],_instantiate_parameter_classes:[14,2,1,""],_model_spec_class_name_is_generic:[14,4,1,""],_model_spec_generic_type_name:[14,4,1,""],_model_spec_parameter_blacklist:[14,3,1,""],_parameter_components:[14,3,1,""],_parse_arg_generic:[14,2,1,""],_parse_arg_variable:[14,2,1,""],_parse_function_variable:[14,2,1,""],_parse_input_shapes:[14,2,1,""],_receiver_ports:[14,3,1,""],_sender_ports:[14,3,1,""],_set_multiple_parameter_values:[14,2,1,""],_specified_variable_shape_flexibility:[14,4,1,""],_validate:[14,2,1,""],_validate_and_assign_runtime_params:[14,2,1,""],_validate_arguments:[14,2,1,""],_validate_function:[14,2,1,""],_validate_params:[14,2,1,""],_validate_variable:[14,2,1,""],all_dependent_parameters:[14,2,1,""],current_execution_time:[14,4,1,""],defaults:[14,4,1,""],execute:[14,2,1,""],execute_until_finished:[14,4,1,""],execution_count:[14,4,1,""],function_parameters:[14,3,1,""],get_afferents:[14,2,1,""],get_efferents:[14,2,1,""],initialization_status:[14,4,1,""],input_shapes:[14,4,1,""],is_finished:[14,2,1,""],log:[14,4,1,""],log_values:[14,2,1,""],loggable_items:[14,3,1,""],logged_items:[14,3,1,""],max_executions_before_finished:[14,4,1,""],most_recent_context:[14,3,1,""],name:[14,4,1,""],num_executions:[14,4,1,""],num_executions_before_finished:[14,4,1,""],parameters:[14,4,1,""],prefs:[14,4,1,""],reset:[14,2,1,""],reset_params:[14,2,1,""],reset_stateful_function_when:[14,4,1,""],set_delivery_conditions:[14,2,1,""],set_log_conditions:[14,2,1,""],stateful_parameters:[14,3,1,"id0"],value:[14,4,1,""],variable:[14,4,1,""]},"psyneulink.core.components.functions":{"function":[41,0,0,"-"],distributionfunctions:[34,0,0,"-"],learningfunctions:[60,0,0,"-"],objectivefunctions:[82,0,0,"-"],optimizationfunctions:[86,0,0,"-"],selectionfunctions:[110,0,0,"-"],transferfunctions:[116,0,0,"-"],userdefinedfunction:[119,0,0,"-"]},"psyneulink.core.components.functions.distributionfunctions":{DistributionFunction:[34,1,1,""],DriftDiffusionAnalytical:[34,1,1,""],ExponentialDist:[34,1,1,""],GammaDist:[34,1,1,""],NormalDist:[34,1,1,""],UniformDist:[34,1,1,""],UniformToNormalDist:[34,1,1,""],Wald
...

See CI logs for the full diff.

Improves GPU performance in stability flexibility model by ~2x.

Signed-off-by: Jan Vesely <[email protected]>
Copy link

This PR causes the following changes to the html docs (ubuntu-latest-3.11):

diff -r docs-base/Composition.html docs-head/Composition.html
1946,1947d1945
< <li><p><a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXExec</span></code></a> – compile individual <a class="reference internal" href="Time.html#psyneulink.core.scheduling.time.TimeScale.TRIAL" title="psyneulink.core.scheduling.time.TimeScale.TRIAL"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">TRIAL</span></code></a>s  for execution on GPU
< (see <a class="reference internal" href="#composition-compilation-ptx"><span class="std std-ref">below</span></a> for additional details).</p></li>
1954,1960c1952,1956
< specifying either <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXRun" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXRun"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXRun</span></code></a> or <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXExec</span></code></a> oin the <strong>execution_mode</strong> argument
< of a <a class="reference internal" href="#composition-execution-methods"><span class="std std-ref">Composition execution method</span></a>, which are equivalent to the LLVM
< counterparts but run in a single thread of a CUDA capable GPU. This requires that a working <a class="reference external" href="https://documen.tician.de/pycuda/">pycuda package</a> is <a class="reference external" href="https://wiki.tiker.net/PyCuda/Installation">installed</a>, and that
< CUDA execution is explicitly enabled by setting the <code class="docutils literal notranslate"><span class="pre">PNL_LLVM_DEBUG</span></code> environment variable to <code class="docutils literal notranslate"><span class="pre">cuda</span></code>.  At present
< compilation using these modes runs on a single GPU thread, and therefore does not produce any performance benefits
< over running in compiled mode on a CPU;  (see <a class="reference external" href="https://github.com/PrincetonUniversity/PsyNeuLink/projects/1">this</a>
< for progress extending support of parallization in compiled modes).</p>
---
> specifying <a class="reference internal" href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXRun" title="psyneulink.core.llvm.__init__.ExecutionMode.PTXRun"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">ExecutionMode.PTXRun</span></code></a> in the <strong>execution_mode</strong> argument of a <a class="reference internal" href="#composition-execution-methods"><span class="std std-ref">Composition execution
> method</span></a>, which are equivalent to the LLVM counterparts but run in a single
> thread of a CUDA capable GPU. This requires that a working <a class="reference external" href="https://documen.tician.de/pycuda/">pycuda package</a> is
> <a class="reference external" href="https://wiki.tiker.net/PyCuda/Installation">installed</a>, and that CUDA execution is not explicitly disabled by
> setting the <code class="docutils literal notranslate"><span class="pre">PNL_LLVM_DEBUG</span></code> environment variable to <code class="docutils literal notranslate"><span class="pre">nocuda</span></code>.</p>
5316c5312
< <li><p><strong>execution_mode</strong> (<em>enum.Enum</em><em>[</em><em>Auto</em><em>|</em><em>LLVM</em><em>|</em><em>LLVMexec</em><em>|</em><em>Python</em><em>|</em><em>PTXExec</em><em>] </em><em>: default Python</em>) – specifies whether to run using the Python interpreter or a <a class="reference internal" href="#composition-compilation"><span class="std std-ref">compiled mode</span></a>.
---
> <li><p><strong>execution_mode</strong> (<em>enum.Enum</em><em>[</em><em>Auto</em><em>|</em><em>LLVM</em><em>|</em><em>LLVMexec</em><em>|</em><em>Python</em><em>] </em><em>: default Python</em>) – specifies whether to run using the Python interpreter or a <a class="reference internal" href="#composition-compilation"><span class="std std-ref">compiled mode</span></a>.
diff -r docs-base/LLVM.html docs-head/LLVM.html
259,264d258
< <dt class="sig sig-object py" id="psyneulink.core.llvm.__init__.ExecutionMode.PTXExec">
< <span class="sig-name descname"><span class="pre">PTXExec</span></span><a class="headerlink" href="#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec" title="Permalink to this definition">¶</a></dt>
< <dd><p>compile and run each <a class="reference internal" href="Time.html#psyneulink.core.scheduling.time.TimeScale.TRIAL" title="psyneulink.core.scheduling.time.TimeScale.TRIAL"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">TRIAL</span></code></a> using CUDA for GPU.</p>
< </dd></dl>
< 
< <dl class="py attribute">
diff -r docs-base/TransferFunctions.html docs-head/TransferFunctions.html
2199c2199
< <p><a class="reference internal" href="#psyneulink.core.components.functions.transferfunctions.Exponential.bounds" title="psyneulink.core.components.functions.transferfunctions.Exponential.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a> – specifies the lower and upper limits of the result;  if there are none, the attribute is set to
---
> <p><a class="reference internal" href="OptimizationFunctions.html#psyneulink.core.components.functions.optimizationfunctions.GradientOptimization.bounds" title="psyneulink.core.components.functions.optimizationfunctions.GradientOptimization.bounds"><code class="xref any py py-attr docutils literal notranslate"><span class="pre">bounds</span></code></a> – specifies the lower and upper limits of the result;  if there are none, the attribute is set to
diff -r docs-base/genindex.html docs-head/genindex.html
5011,5012d5010
<       <li><a href="LLVM.html#psyneulink.core.llvm.__init__.ExecutionMode.PTXExec">PTXExec (psyneulink.core.llvm.__init__.ExecutionMode attribute)</a>
< </li>
Binary files docs-base/objects.inv and docs-head/objects.inv differ
diff -r docs-base/searchindex.js docs-head/searchindex.js
1c1
< Search.setIndex({docnames:["AGT","AGTControlMechanism","AutoAssociativeLearningMechanism","AutoAssociativeProjection","AutodiffComposition","BasicsAndPrimer","BeukersNBackModel","BeukersNBackModel_NB","BotvinickConflictMonitoringModel","BustamanteStroopXORLVOCModel","Cohen_HustonModel","CombinationFunctions","ComparatorMechanism","Compilation","Component","Components","Composition","CompositionFunctionApproximator","CompositionInterfaceMechanism","Compositions","Condition","Context","ContrastiveHebbianMechanism","ContributorsGuide","ControlMechanism","ControlMechanisms","ControlProjection","ControlProjections","ControlSignal","ConventionsAndDefinitions","Core","DDM","DefaultControlMechanism","Defaults","DistributionFunctions","EMComposition","EVC","EVCAuxiliary","EVCControlMechanism","EpisodicMemoryMechanism","Function","Functions","GatingMechanism","GatingMechanisms","GatingProjection","GatingProjections","GatingSignal","GilzenratModel","InputPort","IntegratorFunctions","IntegratorMechanism","IntegratorMechanisms","KWTAMechanism","Keywords","KohonenMechanism","LCAMechanism","LCControlMechanism","LCMechanism","LLVM","LeabraMechanism","LearningFunctions","LearningMechanism","LearningMechanisms","LearningProjection","LearningProjections","LearningSignal","Library","Log","MappingProjection","MaskedMappingProjection","Mechanism","Mechanisms","MemoryFunctions","Models","ModulatoryMechanism","ModulatoryMechanisms","ModulatoryProjection","ModulatoryProjections","ModulatorySignal","MontagueModel","NieuwenhuisModel","NonStatefulFunctions","ObjectiveFunctions","ObjectiveMechanism","ObjectiveMechanisms","OptimizationControlMechanism","OptimizationFunctions","OutputPort","PCTC_model","ParameterEstimationComposition","ParameterPort","Parameters","Pathway","PathwayProjection","PathwayProjections","Port","PredictionErrorMechanism","Preferences","ProcessingMechanism","ProcessingMechanisms","Projection","Projections","QuickReference","RecurrentTransferMechanism","RefactoredLearningGuide","Registry","RegressionCFA","Report","Scheduler","Scheduling","SelectionFunctions","Services","StatefulFunction","StatefulFunctions","Subystems","Time","TransferFunctions","TransferMechanism","TransferMechanisms","UserDefinedFunction","UserGuide","UserGuide_TBD","Visualization","globals","index","index_logo_with_text","mdf","nback_nb"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["AGT.rst","AGTControlMechanism.rst","AutoAssociativeLearningMechanism.rst","AutoAssociativeProjection.rst","AutodiffComposition.rst","BasicsAndPrimer.rst","BeukersNBackModel.rst","BeukersNBackModel_NB.rst","BotvinickConflictMonitoringModel.rst","BustamanteStroopXORLVOCModel.rst","Cohen_HustonModel.rst","CombinationFunctions.rst","ComparatorMechanism.rst","Compilation.rst","Component.rst","Components.rst","Composition.rst","CompositionFunctionApproximator.rst","CompositionInterfaceMechanism.rst","Compositions.rst","Condition.rst","Context.rst","ContrastiveHebbianMechanism.rst","ContributorsGuide.rst","ControlMechanism.rst","ControlMechanisms.rst","ControlProjection.rst","ControlProjections.rst","ControlSignal.rst","ConventionsAndDefinitions.rst","Core.rst","DDM.rst","DefaultControlMechanism.rst","Defaults.rst","DistributionFunctions.rst","EMComposition.rst","EVC.rst","EVCAuxiliary.rst","EVCControlMechanism.rst","EpisodicMemoryMechanism.rst","Function.rst","Functions.rst","GatingMechanism.rst","GatingMechanisms.rst","GatingProjection.rst","GatingProjections.rst","GatingSignal.rst","GilzenratModel.rst","InputPort.rst","IntegratorFunctions.rst","IntegratorMechanism.rst","IntegratorMechanisms.rst","KWTAMechanism.rst","Keywords.rst","KohonenMechanism.rst","LCAMechanism.rst","LCControlMechanism.rst","LCMechanism.rst","LLVM.rst","LeabraMechanism.rst","LearningFunctions.rst","LearningMechanism.rst","LearningMechanisms.rst","LearningProjection.rst","LearningProjections.rst","LearningSignal.rst","Library.rst","Log.rst","MappingProjection.rst","MaskedMappingProjection.rst","Mechanism.rst","Mechanisms.rst","MemoryFunctions.rst","Models.rst","ModulatoryMechanism.rst","ModulatoryMechanisms.rst","ModulatoryProjection.rst","ModulatoryProjections.rst","ModulatorySignal.rst","MontagueModel.rst","NieuwenhuisModel.rst","NonStatefulFunctions.rst","ObjectiveFunctions.rst","ObjectiveMechanism.rst","ObjectiveMechanisms.rst","OptimizationControlMechanism.rst","OptimizationFunctions.rst","OutputPort.rst","PCTC_model.rst","ParameterEstimationComposition.rst","ParameterPort.rst","Parameters.rst","Pathway.rst","PathwayProjection.rst","PathwayProjections.rst","Port.rst","PredictionErrorMechanism.rst","Preferences.rst","ProcessingMechanism.rst","ProcessingMechanisms.rst","Projection.rst","Projections.rst","QuickReference.rst","RecurrentTransferMechanism.rst","RefactoredLearningGuide.rst","Registry.rst","RegressionCFA.rst","Report.rst","Scheduler.rst","Scheduling.rst","SelectionFunctions.rst","Services.rst","StatefulFunction.rst","StatefulFunctions.rst","Subystems.rst","Time.rst","TransferFunctions.rst","TransferMechanism.rst","TransferMechanisms.rst","UserDefinedFunction.rst","UserGuide.rst","UserGuide_TBD.rst","Visualization.rst","globals.rst","index.rst","index_logo_with_text.rst","mdf.rst","nback_nb.ipynb"],objects:{"psyneulink.core.components":{component:[14,0,0,"-"]},"psyneulink.core.components.component":{Component:[14,1,1,""]},"psyneulink.core.components.component.Component":{"function":[14,4,1,""],_check_args:[14,2,1,""],_check_for_composition:[14,2,1,""],_deferred_init:[14,2,1,""],_dependent_components:[14,3,1,""],_get_allowed_arguments:[14,2,1,""],_get_param_value_from_tuple:[14,2,1,""],_handle_default_variable:[14,2,1,""],_handle_input_shapes:[14,2,1,""],_initialize_parameters:[14,2,1,""],_instantiate_defaults:[14,2,1,""],_instantiate_function:[14,2,1,""],_instantiate_parameter_classes:[14,2,1,""],_model_spec_class_name_is_generic:[14,4,1,""],_model_spec_generic_type_name:[14,4,1,""],_model_spec_parameter_blacklist:[14,3,1,""],_parameter_components:[14,3,1,""],_parse_arg_generic:[14,2,1,""],_parse_arg_variable:[14,2,1,""],_parse_function_variable:[14,2,1,""],_parse_input_shapes:[14,2,1,""],_receiver_ports:[14,3,1,""],_sender_ports:[14,3,1,""],_set_multiple_parameter_values:[14,2,1,""],_specified_variable_shape_flexibility:[14,4,1,""],_validate:[14,2,1,""],_validate_and_assign_runtime_params:[14,2,1,""],_validate_arguments:[14,2,1,""],_validate_function:[14,2,1,""],_validate_params:[14,2,1,""],_validate_variable:[14,2,1,""],all_dependent_parameters:[14,2,1,""],current_execution_time:[14,4,1,""],defaults:[14,4,1,""],execute:[14,2,1,""],execute_until_finished:[14,4,1,""],execution_count:[14,4,1,""],function_parameters:[14,3,1,""],get_afferents:[14,2,1,""],get_efferents:[14,2,1,""],initialization_status:[14,4,1,""],input_shapes:[14,4,1,""],is_finished:[14,2,1,""],log:[14,4,1,""],log_values:[14,2,1,""],loggable_items:[14,3,1,""],logged_items:[14,3,1,""],max_executions_before_finished:[14,4,1,""],most_recent_context:[14,3,1,""],name:[14,4,1,""],num_executions:[14,4,1,""],num_executions_before_finished:[14,4,1,""],parameters:[14,4,1,""],prefs:[14,4,1,""],reset:[14,2,1,""],reset_params:[14,2,1,""],reset_stateful_function_when:[14,4,1,""],set_delivery_conditions:[14,2,1,""],set_log_conditions:[14,2,1,""],stateful_parameters:[14,3,1,"id0"],value:[14,4,1,""],variable:[14,4,1,""]},"psyneulink.core.components.functions":{"function":[41,0,0,"-"],distributionfunctions:[34,0,0,"-"],learningfunctions:[60,0,0,"-"],objectivefunctions:[82,0,0,"-"],optimizationfunctions:[86,0,0,"-"],selectionfunctions:[110,0,0,"-"],transferfunctions:[116,0,0,"-"],userdefinedfunction:[119,0,0,"-"]},"psyneulink.core.components.functions.distributionfunctions":{DistributionFunction:[34,1,1,""],DriftDiffusionAnalytical:[34,1,1,""],ExponentialDist:[34,1,1,""],GammaDist:[34,1,1,""],NormalDist:[34,1,1,""],UniformDist:[34,1,1,""],UniformToNormalDist:[34,1,1,""],WaldDist:[34,1,1,""]},"psyneulink.core.components.functions.distributionfunctions.DriftDiffusionAnalytical":{_compute_conditional_rt_moments:[34,2,1,""],_function:[34,2,1,""],bias:[34,4,1,""],derivative:[34,2,1,""],drift_rate:[34,4,1,""],name:[34,4,1,""],noise:[34,4,1,""],non_decision_time:[34,4,1,""],owner:[34,4,1,""],prefs:[34,4,1,""],shenhav_et_al_compat_mode:[34,3,1,""],starting_value:[34,4,1,""],threshold:[34,4,1,""],variable:[34,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.ExponentialDist":{beta:[34,4,1,""],name:[34,4,1,""],owner:[34,4,1,""],params:[34,4,1,""],prefs:[34,4,1,""],random_state:[34,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.GammaDist":{dist_shape:[34,4,1,""],name:[34,4,1,""],owner:[34,4,1,""],params:[34,4,1,""],prefs:[34,4,1,""],random_state:[34,4,1,""],scale:[34,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.NormalDist":{_validate_params:[34,2,1,""],mean:[34,4,1,""],name:[34,4,1,""],owner:[34,4,1,""],params:[34,4,1,""],prefs:[34,4,1,""],random_state:[34,4,1,""],standard_deviation:[34,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.UniformDist":{high:[34,4,1,""],low:[34,4,1,""],name:[34,4,1,""],owner:[34,4,1,""],params:[34,4,1,""],prefs:[34,4,1,""],random_state:[34,4,1,""]},"psyneulink.core.components.functions.distributionfunctions.UniformToNormalDist":{mean:[34,4,1,""],name:[34,4,1,""],owner:[34,4,1,""],params:[34,4,1,""],prefs:[34,4,1,""],random_state:[34,4,1,""],standard_deviation:[34,4,1,""]},"psyneulink.core.components.functions.function":{ArgumentTherapy:[41,1,1,""],Function_Base:[41,1,1,""],RandomMatrix:[41,1,1,""]},"psyneulink.core.components.functions.function.ArgumentTherapy":{Manner:[41,1,1,""],_function:[41,2,1,""],_validate_params:[41,2,1,""],_validate_variable:[41,2,1,""],name:[41,4,
...

See CI logs for the full diff.

@jvesely jvesely merged commit f0a2e3b into PrincetonUniversity:devel Nov 11, 2024
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler Runtime Compiler CUDA CUDA target for the runtime compiler
Projects
Development

Successfully merging this pull request may close these issues.

1 participant