Skip to content

Commit

Permalink
rebase release branch into devel (#2553)
Browse files Browse the repository at this point in the history
* changed mac release package compiler to clang
* fix mac release runs-on
* updated docs
  • Loading branch information
dopitz authored May 11, 2023
1 parent aad183b commit 67a6f40
Show file tree
Hide file tree
Showing 21 changed files with 1,227 additions and 53 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ jobs:
python scripts/test.py build
python scripts/test.py test
release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP:
release-macosx-x64-Release-CLANG-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP:
secrets: inherit
uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/macos.yml@main
with:
runs-on: '[ "macOS", "sign", "avx2", "x86_64" ]'
artifact-out: release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-path: ./build/*.zip
cmd: |
scripts/test.py configure platform:x64 build:Release compiler:ICX2023.0.0 ispc:ispc1.19.0 isas:SSE2-SSE42-AVX-AVX2 tasking:TBB2021.9.0 intensity:4 package:ZIP
scripts/test.py configure platform:x64 build:Release compiler:CLANG ispc:ispc1.19.0 isas:SSE2-SSE42-AVX-AVX2 tasking:TBB2021.9.0 intensity:4 package:ZIP
scripts/test.py build
scripts/test.py test
Expand Down Expand Up @@ -106,28 +106,28 @@ jobs:
binary-analysis:
needs:
- release-windows-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-macosx-x64-Release-CLANG-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-linux-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
secrets: inherit
uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/binary_analysis.yml@main
with:
project: embree
artifact-in-windows: release-windows-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-macos: release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-macos: release-macosx-x64-Release-CLANG-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-linux: release-linux-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
path: "build/*.zip build/*.gz"

antivirus-scan:
needs:
- release-windows-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-macosx-x64-Release-CLANG-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
- release-linux-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
secrets: inherit
uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/antivirus_scan.yml@main
with:
project: embree
artifact-in-windows: release-windows-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-macos: release-macosx-x64-Release-ICX2023_0_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-macos: release-macosx-x64-Release-CLANG-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
artifact-in-linux: release-linux-x64-Release-ICX2023_1_0-ISPC1_19_0-TBB2021_9_0-PACKAGE-ZIP
path: "build/*.zip build/*.gz"

Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Version History
---------------

### Embree 4.1.0
- Added support for Intel® Data Center GPU Max Series.
- Added ARM64 Linux support.
- Added EMBREE_BACKFACE_CULLING_SPHERES cmake option. The new cmake option defaults to OFF.

### Embree 4.0.1
- Improved performance for Tiger Lake, Comet Lake, Cannon Lake, Kaby Lake,
and Skylake client CPUs by using 256 bit SIMD instructions by default.
Expand Down
92 changes: 45 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% Embree: High Performance Ray Tracing Kernels 4.0.1
% Embree: High Performance Ray Tracing Kernels 4.1.0
% Intel Corporation

Intel® Embree Overview
Expand All @@ -7,8 +7,8 @@ Intel® Embree Overview
Intel® Embree is a high-performance ray tracing library developed at
Intel, which is released as open source under the [Apache 2.0
license](http://www.apache.org/licenses/LICENSE-2.0). Intel® Embree
supports x86 CPUs under Linux, macOS, and Windows; ARM CPUs on macOS;
as well as Intel® GPUs under Linux and Windows.
supports x86 CPUs under Linux, macOS, and Windows; ARM CPUs on Linux
and macOS; as well as Intel® GPUs under Linux and Windows.

Intel® Embree targets graphics application developers to improve the
performance of photo-realistic rendering applications. Embree is
Expand Down Expand Up @@ -63,24 +63,14 @@ Supported Platforms

Embree supports Windows (32-bit and 64-bit), Linux (64-bit), and macOS
(64-bit). Under Windows, Linux and macOS x86 based CPUs are supported,
while ARM CPUs are currently only supported under macOS (e.g. Apple
M1). ARM support for Windows and Linux is experimental.
while ARM CPUs are currently only supported under Linux and macOS (e.g.
Apple M1). ARM support for Windows experimental.

Embree supports Intel GPUs based on the Xe HPG microarchitecture
(Intel® Arc™ GPU) under Linux and Windows and Xe HPC microarchitecture
(Intel® Data Center GPU Flex Series and Intel® Data Center GPU Max
Series) under Linux.

Currently the following products are supported and further products
will get enabled soon:

- Intel® Arc™ A770 Graphics
- Intel® Arc™ A750 Graphics
- Intel® Arc™ A770M Graphics
- Intel® Arc™ A730M Graphics
- Intel® Arc™ A550M Graphics
- Intel® Data Center GPU Flex 170

The code compiles with the Intel® Compiler, Intel® oneAPI DPC++
Compiler, GCC, Clang, and the Microsoft Compiler. To use Embree on the
GPU the Intel® oneAPI DPC++ Compiler must be used. Please see section
Expand Down Expand Up @@ -110,7 +100,7 @@ Windows Installation
--------------------

Embree linked against Visual Studio 2015 are provided as a ZIP file
[embree-4.0.1.x64.vc14.windows.zip](https://github.com/embree/embree/releases/download/v4.0.1/embree-4.0.1.x64.vc14.windows.zip). After
[embree-4.1.0.x64.vc14.windows.zip](https://github.com/embree/embree/releases/download/v4.1.0/embree-4.1.0.x64.vc14.windows.zip). After
unpacking this ZIP file, you should set the path to the `lib` folder
manually to your `PATH` environment variable for applications to find
Embree.
Expand All @@ -120,13 +110,13 @@ Linux Installation
------------------

The Linux version of Embree is also delivered as a `tar.gz` file:
[embree-4.0.1.x86_64.linux.tar.gz](https://github.com/embree/embree/releases/download/v4.0.1/embree-4.0.1.x86_64.linux.tar.gz). Unpack
[embree-4.1.0.x86_64.linux.tar.gz](https://github.com/embree/embree/releases/download/v4.1.0/embree-4.1.0.x86_64.linux.tar.gz). Unpack
this file using `tar` and source the provided `embree-vars.sh` (if you
are using the bash shell) or `embree-vars.csh` (if you are using the C
shell) to set up the environment properly:

tar xzf embree-4.0.1.x86_64.linux.tar.gz
source embree-4.0.1.x86_64.linux/embree-vars.sh
tar xzf embree-4.1.0.x86_64.linux.tar.gz
source embree-4.1.0.x86_64.linux/embree-vars.sh

We recommend adding a relative `RPATH` to your application that points
to the location where Embree (and TBB) can be found, e.g. `$ORIGIN/../lib`.
Expand All @@ -136,12 +126,12 @@ macOS Installation
------------------

The macOS version of Embree is also delivered as a ZIP file:
[embree-4.0.1.x86_64.macosx.zip](https://github.com/embree/embree/releases/download/v4.0.1/embree-4.0.1.x86_64.macosx.zip). Unpack
[embree-4.1.0.x86_64.macosx.zip](https://github.com/embree/embree/releases/download/v4.1.0/embree-4.1.0.x86_64.macosx.zip). Unpack
this file using `tar` and source the provided `embree-vars.sh` (if you
are using the bash shell) or `embree-vars.csh` (if you are using the C
shell) to set up the environment properly:

unzip embree-4.0.1.x64.macosx.zip source embree-4.0.1.x64.macosx/embree-vars.sh
unzip embree-4.1.0.x64.macosx.zip source embree-4.1.0.x64.macosx/embree-vars.sh

If you want to ship Embree with your application, please use the Embree
library of the provided ZIP file. The library name of that Embree
Expand All @@ -166,7 +156,7 @@ set the `TBB_DIR` variable to the path containing `TBB-config.cmake` of a local
TBB install, in case you do not have TBB installed globally on your system,
e.g:

cmake -D embree_DIR=path_to_embree_package/lib/cmake/embree-4.0.1/ \
cmake -D embree_DIR=path_to_embree_package/lib/cmake/embree-4.1.0/ \
-D TBB_DIR=path_to_tbb_package/lib/cmake/tbb/ \
..

Expand Down Expand Up @@ -278,15 +268,17 @@ C++11. Embree is tested with the following compilers:

Linux

- Intel® oneAPI DPC++/C++ Compiler 2023.1.0
- Intel® oneAPI DPC++/C++ Compiler 2023.0.0
- oneAPI DPC++/C++ Compiler 2022-12-14
- oneAPI DPC++/C++ Compiler 2023-04-17
- Clang 5.0.0
- Clang 4.0.0
- GCC 10.0.1 (Fedora 32) AVX512 support
- GCC 8.3.1 (Fedora 28) AVX512 support
- GCC 7.3.1 (Fedora 27) AVX2 support
- GCC 7.3.1 (Fedora 26) AVX2 support
- GCC 6.4.1 (Fedora 25) AVX2 support
- Intel® Implicit SPMD Program Compiler 1.19.0
- Intel® Implicit SPMD Program Compiler 1.18.1
- Intel® Implicit SPMD Program Compiler 1.17.0
- Intel® Implicit SPMD Program Compiler 1.16.1
Expand All @@ -297,6 +289,7 @@ Linux

macOS x86

- Intel® C++ Classic Compiler 2023.1.0
- Intel® C++ Classic Compiler 2023.0.0
- Apple Clang 12.0.5 (macOS 11.7.1)

Expand Down Expand Up @@ -402,13 +395,13 @@ The "oneAPI DPC++ Compiler" is more up-to-date than the "Intel(R) oneAPI
DPC++/C++ Compiler" but less stable. The current tested version of the "oneAPI
DPC++ compiler is

- [oneAPI DPC++ Compiler 2022-12-14](https://github.com/intel/llvm/releases/download/sycl-nightly%2F20221214/dpcpp-compiler.tar.gz)
- [oneAPI DPC++ Compiler 2023-04-17](https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230417/dpcpp-compiler.tar.gz)

The compiler can be downloaded and simply extracted. The oneAPI DPC++ compiler
2022-12-14 can be set up executing the following command in a Linux (bash)
shell:

wget https://github.com/intel/llvm/releases/download/sycl-nightly%2F20221214/dpcpp-compiler.tar.gz
wget https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230417/dpcpp-compiler.tar.gz
tar xzf dpcpp-compiler.tar.gz
source ./dpcpp_compiler/startup.sh

Expand All @@ -432,7 +425,7 @@ through `EMBREE_SYCL_SUPPORT=ON`.

Alternatively, you can download and run the installer of the

- [Intel(R) oneAPI DPC++/C++ Compiler 2023.0.0](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp).
- [Intel(R) oneAPI DPC++/C++ Compiler 2023.1.0](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#dpcpp-cpp).

After installation, you can set up the compiler by sourcing the
`vars.sh` script in the `env` directory of the compiler install directory, for example,
Expand Down Expand Up @@ -476,7 +469,7 @@ We tested Embree with the latest GPGPU driver Devel Release from
and OpenCL(TM) Driver from that release is too old for Embree to work
properly. Thus if no newer version of the GPGPU driver is available,
you need to additionally install the latest compute runtime from here
[22.43.24595](https://github.com/intel/compute-runtime/releases/tag/22.43.24595.30).
[23.09.25812.14](https://github.com/intel/compute-runtime/releases/tag/23.09.25812.14).

Unfortunately, these compute runtime packages are only available for
Ubuntu 22.04. You can also install a newer version of the compute
Expand All @@ -488,11 +481,13 @@ Windows
Embree is tested using the following compilers under Windows:

- Intel® oneAPI DPC++/C++ Compiler 2023.1.0
- Intel® oneAPI DPC++/C++ Compiler 2023.0.0
- oneAPI DPC++/C++ Compiler 2022-12-14
- oneAPI DPC++/C++ Compiler 2023-04-17
- Visual Studio 2019
- Visual Studio 2017
- Visual Studio 2015 (Update 1)
- Intel® Implicit SPMD Program Compiler 1.19.0
- Intel® Implicit SPMD Program Compiler 1.18.1
- Intel® Implicit SPMD Program Compiler 1.17.0
- Intel® Implicit SPMD Program Compiler 1.16.1
Expand Down Expand Up @@ -617,7 +612,7 @@ The "oneAPI DPC++ Compiler" is more up-to-date than the "Intel(R) oneAPI
DPC++/C++ Compiler" but less stable. The current tested version of the oneAPI
DPC++ compiler is

- [oneAPI DPC++ Compiler 2022-12-14](https://github.com/intel/llvm/releases/download/sycl-nightly%2F20221214/dpcpp-compiler-win.tar.gz)
- [oneAPI DPC++ Compiler 2023-04-17](https://github.com/intel/llvm/releases/download/sycl-nightly%2F20230417/dpcpp-compiler-win.tar.gz)

Download and unpack the archive and open the "x64 Native Tools Command Prompt"
of Visual Studio and execute the following lines to properly configure the
Expand Down Expand Up @@ -703,9 +698,9 @@ your application with such an Embree package.
### Windows Graphics Driver Installation

In order to run the SYCL tutorials on HPG hardware, you first need to
install the proper graphics drivers for your graphics card from
[https://www.intel.com](https://www.intel.com). Embree will work with
graphics driver version 101.4027 or later.
install the graphics drivers for your graphics card from
[https://www.intel.com](https://www.intel.com). Please make sure to
have installed version 31.0.101.4314 or newer.


CMake Configuration
Expand Down Expand Up @@ -774,6 +769,14 @@ parameters that can be configured in CMake:
surfaces facing a ray can be hit. This option is turned OFF by
default.

+ `EMBREE_BACKFACE_CULLING_CURVES`: Enables backface culling for curves,
i.e. only surfaces facing a ray can be hit. This option is turned OFF
by default.

+ `EMBREE_BACKFACE_CULLING_SPHERES`: Enables backface culling for spheres,
i.e. only surfaces facing a ray can be hit. This option is turned OFF
by default.

+ `EMBREE_COMPACT_POLYS`: Enables compact tris/quads, i.e. only
geomIDs and primIDs are stored inside the leaf nodes.

Expand Down Expand Up @@ -1315,21 +1318,6 @@ Embree SYCL Known Issues
quality, and GPU performance may not reflect that of the final
product.

- Currently only the following Intel® Arc™ GPUs are support:

- Intel® Arc™ A770 Graphics
- Intel® Arc™ A750 Graphics
- Intel® Arc™ A770M Graphics
- Intel® Arc™ A730M Graphics
- Intel® Arc™ A550M Graphics

- Intel® Data Center GPU Max Series is currently not supported.

- Ahead of time compilation is currently not working properly and you
will get this error during compilation:

llvm-foreach: Floating point exception (core dumped)

- Compilation with build configuration "debug" is currently not
working on Windows.

Expand Down Expand Up @@ -1842,6 +1830,16 @@ Possible properties to query are:
back face culling is enabled. This is only the case if Embree is
compiled with `EMBREE_BACKFACE_CULLING` enabled.

- `RTC_DEVICE_PROPERTY_BACKFACE_CULLING_CURVES_ENABLED`: Queries
whether back face culling for curves is enabled. This is only the
case if Embree is compiled with `EMBREE_BACKFACE_CULLING_CURVES`
enabled.

- `RTC_DEVICE_PROPERTY_BACKFACE_CULLING_SPHERES_ENABLED`: Queries
whether back face culling for spheres is enabled. This is only the
case if Embree is compiled with `EMBREE_BACKFACE_CULLING_SPHERES`
enabled.

- `RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED`: Queries whether
compact polys is enabled. This is only the case if Embree is
compiled with `EMBREE_COMPACT_POLYS` enabled.
Expand Down
Loading

0 comments on commit 67a6f40

Please sign in to comment.