Skip to content

Commit

Permalink
Merge pull request #275 from intel/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
chuckyount authored Jul 13, 2023
2 parents 227dedf + cbdda84 commit 52b440c
Show file tree
Hide file tree
Showing 95 changed files with 5,283 additions and 2,073 deletions.
20 changes: 13 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
##############################################################################
## YASK: Yet Another Stencil Kit
## Copyright (c) 2014-2022, Intel Corporation
## Copyright (c) 2014-2023, Intel Corporation
##
## Permission is hereby granted, free of charge, to any person obtaining a copy
## of this software and associated documentation files (the "Software"), to
Expand All @@ -27,16 +27,17 @@

# Some of the make vars that are commonly set via the command-line
# and passed to src/kernel/Makefile are listed here.
# The 'stencil' and 'arch' vars are most important and should always be specified.
#
# stencil: sets stencil problem to be solved.
# For a list of current stencils, run the following:
# For a list of current stencils known to the YASK compiler, run the following:
# % make compiler
# % bin/yask_compiler.exe -h
# You can also create your own stencil; see the documentation.
# You should always set this variable.
#
# arch: sets target architecture for best performance.
# For a list of archs, see src/kernel/Makefile.
# The current host is used to determine if not provided.
#
# mpi: 0, 1: whether to use MPI.
#
Expand All @@ -48,14 +49,10 @@
# e.g., A/B => A*(1/B).
#
# fold: In which dimension(s) to vectorize.
# cluster: How many vectors to evaluate simultaneously.
#
# pfd_l1: L1 prefetch distance (0 => disabled).
# pfd_l2: L2 prefetch distance (0 => disabled).

# Common defaults.
offload ?= 0

# Common settings.
YASK_BASE := $(abspath .)
include $(YASK_BASE)/src/common/common.mk
Expand All @@ -70,6 +67,7 @@ include $(YASK_BASE)/src/common/common.mk
#YASK_MFLAGS += --output-sync --output-sync=line
YK_MAKE := $(MAKE) $(YASK_MFLAGS) -C src/kernel YASK_OUTPUT_DIR=$(YASK_OUT_BASE)
YC_MAKE := $(MAKE) $(YASK_MFLAGS) -C src/compiler YASK_OUTPUT_DIR=$(YASK_OUT_BASE)
EX_MAKE := $(MAKE) $(YASK_MFLAGS) -C src/examples YASK_OUTPUT_DIR=$(YASK_OUT_BASE)

# Default flags--used only for targets in this Makefile.
# For compiler, use YC_CXX* vars.
Expand All @@ -93,6 +91,9 @@ compiler:
kernel:
$(YK_MAKE) $@

examples:
$(EX_MAKE)

######## API targets
# NB: must set stencil and arch to generate the desired kernel API.

Expand Down Expand Up @@ -157,6 +158,7 @@ realclean: clean
help:
@ $(YC_MAKE) $@
@ $(YK_MAKE) $@
@ $(EX_MAKE) $@
@ echo " "
@ echo "'setenv CXX_PREFIX ccache' or 'export CXX_PREFIX=ccache' to use ccache."

Expand Down Expand Up @@ -272,10 +274,14 @@ unit-tests:
$(MAKE) tuple-test
$(MAKE) combo-test

example-tests:
$(EX_MAKE) all-tests

all-tests: compiler-api unit-tests
$(YC_MAKE) $@
$(YK_MAKE) $@
$(MAKE) combo-api-tests
$(MAKE) example-tests
$(MAKE) clean
@echo "All YASK tests have been run"

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ and Intel(R) graphics processors.

## Backward-compatibility notices
### Version 4
* Version 4.04.00 deprecates the existing `void*` set/get_elements_in_slice()
APIs and provides safer `float*` and `double*` versions.
* Version 4.03.00 is a significant release with the following notices:
- Each non-scratch stencil equation is now checked to ensure
offsets of +/-1 from the step-dimension on the LHS, e.g.,
Expand Down
2 changes: 1 addition & 1 deletion YASK-LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
YASK: Yet Another Stencil Kit
Copyright (c) 2014-2022, Intel Corporation
Copyright (c) 2014-2023, Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
Expand Down
Binary file modified docs/YASK-tutorial.pdf
Binary file not shown.
3 changes: 2 additions & 1 deletion docs/api/html/annotated.html
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@
<tr id="row_0_45_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__factory.html" target="_self">yk_factory</a></td><td class="desc">Bootstrap factory to create a stencil solution </td></tr>
<tr id="row_0_46_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__solution.html" target="_self">yk_solution</a></td><td class="desc">Stencil solution as defined by the generated code from the YASK stencil compiler </td></tr>
<tr id="row_0_47_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__stats.html" target="_self">yk_stats</a></td><td class="desc">Statistics from calls to run_solution() </td></tr>
<tr id="row_0_48_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__var.html" target="_self">yk_var</a></td><td class="desc">A run-time YASK data container </td></tr>
<tr id="row_0_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_48_" class="arrow" onclick="toggleFolder('0_48_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__var.html" target="_self">yk_var</a></td><td class="desc">A run-time YASK data container </td></tr>
<tr id="row_0_48_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classyask_1_1yk__var_1_1yk__reduction__result.html" target="_self">yk_reduction_result</a></td><td class="desc">Class returned from <a class="el" href="classyask_1_1yk__var.html#a15d8c95365a80eaa8d011b9017cb1664" title="Perform requested reductions over elements within specified subset of the var.">reduce_elements_in_slice()</a> </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
Expand Down
2 changes: 1 addition & 1 deletion docs/api/html/classes.html
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
<dd><a class="el" href="classyask_1_1command__line__parser_1_1string__list__option.html">command_line_parser::string_list_option</a> (yask)</dd><dd><a class="el" href="classyask_1_1command__line__parser_1_1string__option.html">command_line_parser::string_option</a> (yask)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_Y" name="letter_Y">Y</a></dt>
<dd><a class="el" href="classyask_1_1yask__exception.html">yask_exception</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__file__output.html">yask_file_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__null__output.html">yask_null_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__output.html">yask_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__output__factory.html">yask_output_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__stdout__output.html">yask_stdout_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__string__output.html">yask_string_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__add__node.html">yc_add_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__and__node.html">yc_and_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__bool__node.html">yc_binary_bool_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__comparison__node.html">yc_binary_comparison_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__number__node.html">yc_binary_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__bool__node.html">yc_bool_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__commutative__number__node.html">yc_commutative_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__const__number__node.html">yc_const_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__divide__node.html">yc_divide_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__equals__node.html">yc_equals_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__equation__node.html">yc_equation_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__expr__node.html">yc_expr_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__factory.html">yc_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__greater__than__node.html">yc_greater_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__index__node.html">yc_index_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__less__than__node.html">yc_less_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__mod__node.html">yc_mod_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__multiply__node.html">yc_multiply_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__negate__node.html">yc_negate_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__node__factory.html">yc_node_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__equals__node.html">yc_not_equals_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__greater__than__node.html">yc_not_greater_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__less__than__node.html">yc_not_less_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__node.html">yc_not_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__any__arg.html">yc_number_any_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__const__arg.html">yc_number_const_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__node.html">yc_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__ptr__arg.html">yc_number_ptr_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__or__node.html">yc_or_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution.html">yc_solution</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution__base.html">yc_solution_base</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution__with__radius__base.html">yc_solution_with_radius_base</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__subtract__node.html">yc_subtract_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var.html">yc_var</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var__point__node.html">yc_var_point_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var__proxy.html">yc_var_proxy</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__env.html">yk_env</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__factory.html">yk_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__solution.html">yk_solution</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__stats.html">yk_stats</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__var.html">yk_var</a> (yask)</dd></dl>
<dd><a class="el" href="classyask_1_1yask__exception.html">yask_exception</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__file__output.html">yask_file_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__null__output.html">yask_null_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__output.html">yask_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__output__factory.html">yask_output_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__stdout__output.html">yask_stdout_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yask__string__output.html">yask_string_output</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__add__node.html">yc_add_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__and__node.html">yc_and_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__bool__node.html">yc_binary_bool_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__comparison__node.html">yc_binary_comparison_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__binary__number__node.html">yc_binary_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__bool__node.html">yc_bool_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__commutative__number__node.html">yc_commutative_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__const__number__node.html">yc_const_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__divide__node.html">yc_divide_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__equals__node.html">yc_equals_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__equation__node.html">yc_equation_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__expr__node.html">yc_expr_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__factory.html">yc_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__greater__than__node.html">yc_greater_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__index__node.html">yc_index_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__less__than__node.html">yc_less_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__mod__node.html">yc_mod_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__multiply__node.html">yc_multiply_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__negate__node.html">yc_negate_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__node__factory.html">yc_node_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__equals__node.html">yc_not_equals_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__greater__than__node.html">yc_not_greater_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__less__than__node.html">yc_not_less_than_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__not__node.html">yc_not_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__any__arg.html">yc_number_any_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__const__arg.html">yc_number_const_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__node.html">yc_number_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__number__ptr__arg.html">yc_number_ptr_arg</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__or__node.html">yc_or_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution.html">yc_solution</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution__base.html">yc_solution_base</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__solution__with__radius__base.html">yc_solution_with_radius_base</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__subtract__node.html">yc_subtract_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var.html">yc_var</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var__point__node.html">yc_var_point_node</a> (yask)</dd><dd><a class="el" href="classyask_1_1yc__var__proxy.html">yc_var_proxy</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__env.html">yk_env</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__factory.html">yk_factory</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__var_1_1yk__reduction__result.html">yk_var::yk_reduction_result</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__solution.html">yk_solution</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__stats.html">yk_stats</a> (yask)</dd><dd><a class="el" href="classyask_1_1yk__var.html">yk_var</a> (yask)</dd></dl>
</div>
</div><!-- contents -->
<!-- start footer part -->
Expand Down
Loading

0 comments on commit 52b440c

Please sign in to comment.