Skip to content

Commit bc333df

Browse files
committed
interfacing with qblas
1 parent 5914811 commit bc333df

File tree

7 files changed

+485
-5
lines changed

7 files changed

+485
-5
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "quaddtype/numpy_quaddtype/QBLAS"]
2+
path = quaddtype/numpy_quaddtype/QBLAS
3+
url = https://github.com/SwayamInSync/QBLAS

quaddtype/meson.build

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,17 @@ incdir_numpy = run_command(py,
2323
check : true
2424
).stdout().strip()
2525

26+
# Add OpenMP dependency (optional, for threading)
27+
openmp_dep = dependency('openmp', required: false)
28+
dependencies = [sleef_dep, py_dep]
29+
if openmp_dep.found()
30+
dependencies += openmp_dep
31+
endif
32+
2633
includes = include_directories(
2734
[
2835
incdir_numpy,
36+
'numpy_quaddtype/QBLAS/include',
2937
'numpy_quaddtype/src',
3038
]
3139
)
@@ -45,7 +53,9 @@ srcs = [
4553
'numpy_quaddtype/src/umath.h',
4654
'numpy_quaddtype/src/umath.cpp',
4755
'numpy_quaddtype/src/dragon4.h',
48-
'numpy_quaddtype/src/dragon4.c'
56+
'numpy_quaddtype/src/dragon4.c',
57+
'numpy_quaddtype/src/quadblas_interface.h',
58+
'numpy_quaddtype/src/quadblas_interface.cpp'
4959
]
5060

5161
py.install_sources(
@@ -60,7 +70,7 @@ py.extension_module('_quaddtype_main',
6070
srcs,
6171
link_args: is_windows ? ['/DEFAULTLIB:sleef', '/DEFAULTLIB:sleefquad'] : ['-lsleef', '-lsleefquad'],
6272
link_language: 'cpp',
63-
dependencies: [sleef_dep, py_dep],
73+
dependencies: dependencies,
6474
install: true,
6575
subdir: 'numpy_quaddtype',
6676
include_directories: includes

quaddtype/numpy_quaddtype/QBLAS

Submodule QBLAS added at 6858d56

quaddtype/numpy_quaddtype/__init__.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,20 @@
22
QuadPrecision,
33
QuadPrecDType,
44
is_longdouble_128,
5-
get_sleef_constant
5+
get_sleef_constant,
6+
dot,
7+
set_num_threads,
8+
get_num_threads,
9+
get_quadblas_version
610
)
711

812
__all__ = [
913
'QuadPrecision', 'QuadPrecDType', 'SleefQuadPrecision', 'LongDoubleQuadPrecision',
10-
'SleefQuadPrecDType', 'LongDoubleQuadPrecDType', 'is_longdouble_128', 'pi', 'e',
11-
'log2e', 'log10e', 'ln2', 'ln10', 'max_value', 'min_value', 'epsilon'
14+
'SleefQuadPrecDType', 'LongDoubleQuadPrecDType', 'is_longdouble_128',
15+
# Constants
16+
'pi', 'e', 'log2e', 'log10e', 'ln2', 'ln10', 'max_value', 'min_value', 'epsilon',
17+
# QuadBLAS related functions
18+
'dot', 'set_num_threads', 'get_num_threads', 'get_quadblas_version'
1219
]
1320

1421
def SleefQuadPrecision(value):

0 commit comments

Comments
 (0)