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

[ISSUE-783] [ISSUE-773] Target Architecture #794

Open
wants to merge 12 commits into
base: SharedDevelopment
Choose a base branch
from

Conversation

AndrewBMadison
Copy link

@AndrewBMadison AndrewBMadison commented Feb 10, 2025

Closes #783
Closes #773

Description

CMAKE build types cleaned up in cmakelists

# Build Type Configuration
#
# CMake support for different build types controlling optimization, debugging and profiling:
#
#   - Debug         : No optimizations (`-O0`), includes debug symbols (`-g`).
#   - Release       : Optimized build (`-O3`), removes debug symbols.
#   - RelWithDebInfo: Optimized (`-O2`) but keeps debug symbols (`-g`) for profiling.
#   - Profiling     : Custom build type (defined in this project) that enables:
#                     - CPU profiling via `-pg` (GPROF)
#                     - CUDA profiling via `-lineinfo` (for Nsight Compute)
#
# Selecting a Build Type:
#   - By default, CMake does NOT set a build type for single-config generators.
#   - If no build type is specified, this script defaults to "Release" for performance.
#   - You can explicitly set the build type when configuring CMake:
#
#       cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug      # Debug mode
#       cmake -S . -B build -DCMAKE_BUILD_TYPE=Release    # Release mode
#       cmake -S . -B build -DCMAKE_BUILD_TYPE=Profiling  # Profiling mode 
#       
#       If you don't want to pass in the build type flag, you can edit this file and add...
#               set(CMAKE_BUILD_TYPE "Debug") or whichever build type you want
# -----------------------------------------------------------------------------

Additionally, added a new conditional flag to change the target architecture for cuda compilation.

#CONDITIONAL FLAG to change target architecture for the GPU simulator from the default
#
#You can pass this flag when running cmake from the command line like this, setting TARGET_ARCH \
#       to your desired architecture:                                                            \
#
#cmake -D ENABLE_CUDA=YES -D TARGET_ARCH=70 ..
#
#"YES" / GPU choice only available if CUDA library is installed and the GPU is CUDA capable.
#If no TARGET_ARCH is passed in then it will default to 37 which is the kepler architecture

Quickstart guide, StudentSetup, and codingConventions documentation was updated.
Added support for nvtx profiling tools. The profiling build option will enable this if the nvtx libraries are present.

Checklist (Mandatory for new features)

  • Added Documentation
  • Added Unit Tests

Testing (Mandatory for all changes)

  • GPU Test: test-medium-connected.xml Passed
  • GPU Test: test-large-long.xml Passed

@AndrewBMadison AndrewBMadison changed the base branch from master to SharedDevelopment February 10, 2025 23:00
@AndrewBMadison AndrewBMadison self-assigned this Feb 11, 2025
Copy link
Contributor

@stiber stiber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One item...

Comment on lines +100 to +102

# Machine Specific build script
build.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want this tracked by git; it's used for manual testing and should be kept in sync with the GitHub actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants