mirror of
https://github.com/ivabus/pantry
synced 2024-11-22 08:25:07 +03:00
github.com/oneapi-src/oneTBB (#3278)
* new file: projects/github.com/oneapi-src/oneTBB/cores-types.cpp new file: projects/github.com/oneapi-src/oneTBB/package.yml new file: projects/github.com/oneapi-src/oneTBB/sum1-100.cpp * display-name * well, this is complicated * hmmm * wip * wip * remove tea/gx * wip * let's try without Python first * --std=c++14 * wip * sure * add in gnu make on linux * wip * test * python tbb * PYTHONPATH & LDFLAGS * done * will the magic happen? * compiler to env? * it's redundant > install_log.txt 2>&1 * oh new python * problems with linux/aarch64 * i'll stop messing with this --------- Co-authored-by: Jacob Heider <jacob@tea.xyz> Co-authored-by: Jacob Heider <jacob@pkgx.dev>
This commit is contained in:
parent
2936f5c579
commit
929758b320
3 changed files with 129 additions and 0 deletions
10
projects/github.com/oneapi-src/oneTBB/cores-types.cpp
Normal file
10
projects/github.com/oneapi-src/oneTBB/cores-types.cpp
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include <cstdlib>
|
||||
#include <tbb/task_arena.h>
|
||||
|
||||
int main() {
|
||||
const auto numa_nodes = tbb::info::numa_nodes();
|
||||
const auto size = numa_nodes.size();
|
||||
const auto type = numa_nodes.front();
|
||||
|
||||
return size == 1 && type == tbb::task_arena::automatic ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
97
projects/github.com/oneapi-src/oneTBB/package.yml
Normal file
97
projects/github.com/oneapi-src/oneTBB/package.yml
Normal file
|
@ -0,0 +1,97 @@
|
|||
distributable:
|
||||
url: https://github.com/oneapi-src/oneTBB/archive/v{{version}}.tar.gz
|
||||
strip-components: 1
|
||||
|
||||
display-name: tbb
|
||||
|
||||
platforms:
|
||||
- darwin
|
||||
- linux/x86-64
|
||||
# FIXME: linux/aarch64 => undefined symbol: __aarch64_ldadd8_acq_rel
|
||||
|
||||
versions:
|
||||
github: oneapi-src/oneTBB
|
||||
strip: /^v/
|
||||
ignore: # they moved _to_ calver
|
||||
- /4\.4/
|
||||
|
||||
dependencies:
|
||||
python.org: ~3.11
|
||||
|
||||
runtime:
|
||||
env:
|
||||
PYTHONPATH: '{{prefix}}/lib/python{{deps.python.org.version.major}}/site-packages:$PYTHONPATH'
|
||||
|
||||
build:
|
||||
dependencies:
|
||||
cmake.org: '*'
|
||||
swig.org: '*'
|
||||
freedesktop.org/pkg-config: '*'
|
||||
linux:
|
||||
llvm.org: '*'
|
||||
gnu.org/gcc: '>=4.8.5<11.2.1'
|
||||
gnu.org/make: '*'
|
||||
working-directory: build
|
||||
script:
|
||||
#build shared
|
||||
- run: |
|
||||
cmake -S ../.. $CMAKE_ARGS -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_RPATH="{{prefix}}"
|
||||
cmake --build .
|
||||
cmake --install .
|
||||
working-directory: shared
|
||||
|
||||
# build static
|
||||
- run: |
|
||||
cmake -S ../.. $CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_RPATH="{{prefix}}"
|
||||
cmake --build .
|
||||
install ./*/libtbb*.a {{prefix}}/lib/
|
||||
working-directory: static
|
||||
|
||||
# build python
|
||||
- run: |
|
||||
cmake -S ../.. $CMAKE_ARGS -DTBB4PY_BUILD=ON
|
||||
make irml
|
||||
install gnu*/* {{prefix}}/lib
|
||||
export LDFLAGS="-L{{prefix}}/lib/libirml.so -lirml $LDFLAGS"
|
||||
export PYTHONPATH="$PWD/build/python{{deps.python.org.version.marketing}}/site-packages:$PYTHONPATH"
|
||||
export CXX=clang++
|
||||
python ../../python/setup.py install --prefix=$PWD/build
|
||||
working-directory: python
|
||||
if: linux
|
||||
|
||||
- run: |
|
||||
python3 -m pip install --prefix={{prefix}} .
|
||||
working-directory: ../python
|
||||
|
||||
# python 3.xx => 3 symlink
|
||||
- run: |
|
||||
if [ ! -L "python{{deps.python.org.version.major}}" ]; then
|
||||
ln -s python{{deps.python.org.version.marketing}} python{{deps.python.org.version.major}}
|
||||
fi
|
||||
working-directory: ${{prefix}}/lib
|
||||
|
||||
env:
|
||||
TBBROOT: '{{prefix}}'
|
||||
CMAKE_ARGS:
|
||||
- -DCMAKE_INSTALL_PREFIX="{{prefix}}
|
||||
- -DCMAKE_BUILD_TYPE=Release
|
||||
- -DCMAKE_FIND_FRAMEWORK=LAST
|
||||
- -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
- -Wno-dev
|
||||
- -DTBB_TEST=OFF
|
||||
PYTHONPATH: '{{prefix}}/lib/python{{deps.python.org.version.marketing}}/site-packages:$PYTHONPATH'
|
||||
linux:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
|
||||
test:
|
||||
dependencies:
|
||||
freedesktop.org/pkg-config: '*'
|
||||
script:
|
||||
- pkg-config --modversion tbb | grep {{version}}
|
||||
- c++ --std=c++14 cores-types.cpp $(pkg-config --libs tbb) -ltbb -o core-types
|
||||
- ./core-types
|
||||
- c++ --std=c++14 sum1-100.cpp $(pkg-config --libs tbb) -o sum1-100
|
||||
- ./sum1-100 | grep 5050
|
||||
- python -m TBB -h
|
||||
- python -c "import TBB"
|
22
projects/github.com/oneapi-src/oneTBB/sum1-100.cpp
Normal file
22
projects/github.com/oneapi-src/oneTBB/sum1-100.cpp
Normal file
|
@ -0,0 +1,22 @@
|
|||
#include <iostream>
|
||||
#include <tbb/blocked_range.h>
|
||||
#include <tbb/parallel_reduce.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
auto total = tbb::parallel_reduce(
|
||||
tbb::blocked_range<int>(0, 100),
|
||||
0.0,
|
||||
[&](tbb::blocked_range<int> r, int running_total)
|
||||
{
|
||||
for (int i=r.begin(); i < r.end(); ++i) {
|
||||
running_total += i + 1;
|
||||
}
|
||||
|
||||
return running_total;
|
||||
}, std::plus<int>()
|
||||
);
|
||||
|
||||
std::cout << total << std::endl;
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue