-
Notifications
You must be signed in to change notification settings - Fork 141
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
Add support for a CPU-only Mode #1851
Merged
rapids-bot
merged 323 commits into
nv-morpheus:branch-24.10
from
dagardner-nv:david-cpu-only-mode-1846
Oct 18, 2024
Merged
Add support for a CPU-only Mode #1851
rapids-bot
merged 323 commits into
nv-morpheus:branch-24.10
from
dagardner-nv:david-cpu-only-mode-1846
Oct 18, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dagardner-nv
added
breaking
Breaking change
feature request
New feature or request
DO NOT MERGE
PR should not be merged; see PR for details
skip-ci
Optionally Skip CI for this PR
labels
Aug 19, 2024
Closed
…ncurrent byte-code execution, there is still a chance of context switching inside of the import_morpheus___lib__cudf_helpers
…pe loosely based on a method of the same name from dask-sql
…avid-cpu-only-mode-1846
…as these come at a cost
… based on the use_cudf marker
/ok to test |
/ok to test |
mdemoret-nv
approved these changes
Oct 18, 2024
/merge |
rapids-bot bot
pushed a commit
that referenced
this pull request
Oct 18, 2024
* Works-around the issue where CPU-only mode requires using the Python impl of `MessageMeta` a pandas DF, however the `LLMEngineStage` is implemented in C++ and only compatible with the C++ impl of `MessageMeta` with a cudf DF. * Stores the Python impl of `MessageMeta` within the `ControlMessage` metadata which is able to store a Python object as-is. * Updates the Simple Agents & Completion pipelines to optionally execute in CPU-only mode when the `--use_cpu_only` flag is given Requires PR #1851 to be merged first ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/nv-morpheus/Morpheus/blob/main/docs/source/developer_guide/contributing.md). - When the PR is ready for review, new or existing tests cover these changes. - When the PR is ready for review, the documentation is up to date with these changes. Authors: - David Gardner (https://github.com/dagardner-nv) - Yuchen Zhang (https://github.com/yczhang-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: #1906
rapids-bot bot
pushed a commit
that referenced
this pull request
Oct 18, 2024
* Documents writing a stage that supports CPU execution mode * Updates `docs/source/developer_guide/contributing.md` cleaning up build and troubleshooting sections. Requires PRs #1851 & #1906 to be merged first Closes [#1737](#1737) ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/nv-morpheus/Morpheus/blob/main/docs/source/developer_guide/contributing.md). - When the PR is ready for review, new or existing tests cover these changes. - When the PR is ready for review, the documentation is up to date with these changes. Authors: - David Gardner (https://github.com/dagardner-nv) - Yuchen Zhang (https://github.com/yczhang-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: #1924
rapids-bot bot
pushed a commit
to nv-morpheus/morpheus-visualizations
that referenced
this pull request
Oct 21, 2024
* Requires nv-morpheus/Morpheus#1851 to be merged first Authors: - David Gardner (https://github.com/dagardner-nv) Approvers: - Anuradha Karuppiah (https://github.com/AnuradhaKaruppiah) - Michael Demoret (https://github.com/mdemoret-nv) URL: #42
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
morpheus.config.ExecutionMode
with membersGPU
&CPU
along with a newmorpheus.config.Config.execution_mode
attribute.Config.execution_mode
will always default toGPU
supported_execution_modes
toStageBase
which returnsExecutionMode.GPU
by default. This ensures that building a pipeline with a stage not matching the execution mode will raise a reasonable error to the user.CpuOnlyMixin
andGpuAndCpuMixin
mixins to automate overriding this, and makes it easier for users to determine which execution modes a given stage supports at a glance.cudf
or any other GPU based package which will fail on import at the top-level of a module. This is important for stage, message and modules which are automatically imported by the morpheus CLI tool.morpheus.utils.type_utils
(ex:get_df_pkg
,is_cudf_type
) to help avoid importing cudf directlyConfig.freeze
method which will make a config object immutable. This will be called the first time a config object is used to construct a pipeline or stage object. Prevents the possibility of config parameters from being changed in the middle of pipeline construction.CudfHelper::load
is no longer called automatically on import, instead it is called manually on pipeline build when execution mode is GPU.ControlMessage
CPU_ONLY
environment variable is defineddocker/run_container_dev.sh
will launch the container using therunc
runtime.gpu_and_cpu_mode
test marker to explicitly indicate a test intended to be parameterized over execution modes.ControlMessage
AppShieldSourceStage
now emitsControlMessage
s,AppShieldMessageMeta
is now deprecatedAutoencoderSourceStage
and thusAzureSourceStage
,CloudTrailSourceStage
, andDuoSourceStage
now emitControlMessage
,UserMessageMeta
is now deprecated.DFPMessageMeta
, pipeline now executes in C++ mode.docker/run_container_dev.sh
&docker/run_container_release.sh
intodocker/run_container.sh
TensorMemory.set_tensor
([BUG]: Python impl ofTensorMemory.set_tensor
reshapes incoming tensors #1955)Closes #1646
Closes #1846
Closes #1852
Closes #1955
By Submitting this PR I confirm: