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

[Draft] D3D12Compute: HLSL 6 #8207

Open
wants to merge 34 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f1e443e
101
soufianekhiat Apr 16, 2024
e0db16b
Add HLSL types
soufianekhiat Apr 16, 2024
02c54d6
Move to global parameter without semantic
soufianekhiat Apr 16, 2024
06777f7
comment for context
soufianekhiat Apr 16, 2024
9364f60
Fix compilation
soufianekhiat Apr 17, 2024
7e62b31
add comment
soufianekhiat Apr 24, 2024
57ca837
Merge branch 'main' of https://github.com/halide/Halide into sk/d3d12…
soufianekhiat Aug 27, 2024
ccab484
.
soufianekhiat Aug 27, 2024
b87f2b1
Fix _Float16 detection on ARM64 GCC<13 (#8401)
alexreinking Aug 29, 2024
97eeaf0
Update README.md (#8404)
abadams Sep 2, 2024
b3c8c8b
Support CMAKE_OSX_ARCHITECTURES (#8390)
alexreinking Sep 4, 2024
95ebd01
Pip packaging at last! (#8405)
alexreinking Sep 4, 2024
3a34741
Big documentation update (#8410)
alexreinking Sep 5, 2024
63609cc
Document how to find Halide from a pip installation (#8411)
alexreinking Sep 6, 2024
37300e3
Merge pull request #8412
alexreinking Sep 6, 2024
f658eec
Fix classifier spelling (#8413)
alexreinking Sep 7, 2024
07fecc9
Make run-clang-tidy.sh work on macOS (#8416)
alexreinking Sep 9, 2024
3e6e7e0
Link to PyPI from Doxygen index.html (#8415)
alexreinking Sep 9, 2024
a65221b
Include our Markdown documentation in the Doxygen site. (#8417)
alexreinking Sep 10, 2024
6fb13b7
Add missing backslash (#8419)
abadams Sep 15, 2024
4d368bf
Reschedule the matrix multiply performance app (#8418)
abadams Sep 15, 2024
c8dcb4c
Fix for top-of-tree LLVM (#8421)
steven-johnson Sep 17, 2024
53124cd
Upgrade LLVM to 19.1.0 in pip package (#8423)
alexreinking Sep 20, 2024
9a02890
Some minor fixes for C++23 compilation errors. (#8422)
zvookin Sep 23, 2024
e55bd6f
Fix for top-of-tree LLVM (#8425)
steven-johnson Sep 24, 2024
c4bb007
101
soufianekhiat Apr 16, 2024
9eee871
Add HLSL types
soufianekhiat Apr 16, 2024
d7cb596
Move to global parameter without semantic
soufianekhiat Apr 16, 2024
5b38030
comment for context
soufianekhiat Apr 16, 2024
4c27435
Fix compilation
soufianekhiat Apr 17, 2024
b54e152
add comment
soufianekhiat Apr 24, 2024
dd9b264
.
soufianekhiat Aug 27, 2024
c67a2ab
Merge branch 'sk/d3d12_hlsl_6' of https://github.com/soufianekhiat/Ha…
soufianekhiat Sep 25, 2024
b01b822
iter
soufianekhiat Sep 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Big documentation update (#8410)
alexreinking authored Sep 5, 2024
commit 3a3474103a1a1984eacefd275888a4c620a7893b
492 changes: 238 additions & 254 deletions README.md

Large diffs are not rendered by default.

1,411 changes: 0 additions & 1,411 deletions README_cmake.md

This file was deleted.

626 changes: 626 additions & 0 deletions doc/BuildingHalideWithCMake.md

Large diffs are not rendered by default.

393 changes: 393 additions & 0 deletions doc/CodeStyleCMake.md

Large diffs are not rendered by default.

File renamed without changes.
808 changes: 808 additions & 0 deletions doc/HalideCMakePackage.md

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions doc/Hexagon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Halide for Hexagon HVX

Halide supports offloading work to Qualcomm Hexagon DSP on Qualcomm Snapdragon
845/710 devices or newer. The Hexagon DSP provides a set of 128 byte vector
instruction extensions - the Hexagon Vector eXtensions (HVX). HVX is well suited
for image processing, and Halide for Hexagon HVX will generate the appropriate
HVX vector instructions from a program authored in Halide.

Halide can be used to compile Hexagon object files directly, by using a target
such as `hexagon-32-qurt-hvx`.

Halide can also be used to offload parts of a pipeline to Hexagon using the
`hexagon` scheduling directive. To enable the `hexagon` scheduling directive,
include the `hvx` target feature in your target. The currently supported
combination of targets is to use the HVX target features with an x86 linux
host (to use the simulator) or with an ARM android target (to use Hexagon DSP
hardware). For examples of using the `hexagon` scheduling directive on both the
simulator and a Hexagon DSP, see the blur example app.

To build and run an example app using the Hexagon target,

1. Obtain and build trunk LLVM and Clang. (Earlier versions of LLVM may work but
are not actively tested and thus not recommended.)
2. Download and install the Hexagon SDK and Hexagon Tools. Hexagon SDK 4.3.0 or
later is needed. Hexagon Tools 8.4 or later is needed.
3. Build and run an example for Hexagon HVX

## 1. Obtain and build trunk LLVM and Clang

(Follow the instructions given previously, just be sure to check out the `main`
branch.)

## 2. Download and install the Hexagon SDK and Hexagon Tools

Go to https://qpm.qualcomm.com/#/main/home

1. Go to Tools, and download Qualcomm Package Manager 3. Install the package
manager on your machine.
2. Run the installed Qualcomm Package Manager and install the Qualcomm Hexagon
SDK 5.x (or 4.x). The SDK can be selected from the Qualcomm Hexagon SDK
Products.
3. Set an environment variable to point to the SDK installation location
```
export SDK_LOC=/location/of/SDK
```

## 3. Build and run an example for Hexagon HVX

In addition to running Hexagon code on device, Halide also supports running
Hexagon code on the simulator from the Hexagon tools.

To build and run the blur example in Halide/apps/blur on the simulator:

```
cd apps/blur
export HL_HEXAGON_SIM_REMOTE=../../src/runtime/hexagon_remote/bin/v65/hexagon_sim_remote
export HL_HEXAGON_TOOLS=$SDK_LOC/Hexagon_Tools/8.x/Tools/
LD_LIBRARY_PATH=../../src/runtime/hexagon_remote/bin/host/:$HL_HEXAGON_TOOLS/lib/iss/:. HL_TARGET=host-hvx make test
```

## To build and run the blur example in Halide/apps/blur on Android:

To build the example for Android, first ensure that you have Android NDK r19b or
later installed, and the ANDROID_NDK_ROOT environment variable points to it.
(Note that Qualcomm Hexagon SDK v4.3.0 includes Android NDK r19c, which is
fine.)

Now build and run the blur example using the script to run it on device:

```
export HL_HEXAGON_TOOLS=$SDK_LOC/HEXAGON_Tools/8.4.11/Tools/
HL_TARGET=arm-64-android-hvx ./adb_run_on_device.sh
```
530 changes: 300 additions & 230 deletions README_python.md → doc/Python.md

Large diffs are not rendered by default.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
9 changes: 5 additions & 4 deletions packaging/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -119,15 +119,16 @@ install(TARGETS ${utils} EXPORT Halide_Interfaces COMPONENT Halide_Development)
##

install(FILES
${Halide_SOURCE_DIR}/README_cmake.md
${Halide_SOURCE_DIR}/README.md
${Halide_SOURCE_DIR}/README_python.md
${Halide_SOURCE_DIR}/README_rungen.md
${Halide_SOURCE_DIR}/README_webassembly.md
${Halide_SOURCE_DIR}/LICENSE.txt
COMPONENT Halide_Documentation
TYPE DOC)

install(DIRECTORY "${Halide_SOURCE_DIR}/doc"
COMPONENT Halide_Documentation
TYPE DOC
FILES_MATCHING PATTERN "*.md")

##
# Tools
##