#include "ttg/config.h"
#include "ttg/impl_selector.h"
#include "../../ttg.h"
#include "ttg/base/keymap.h"
#include "ttg/base/tt.h"
#include "ttg/base/world.h"
#include "ttg/constraint.h"
#include "ttg/edge.h"
#include "ttg/execution.h"
#include "ttg/func.h"
#include "ttg/runtimes.h"
#include "ttg/terminal.h"
#include "ttg/tt.h"
#include "ttg/util/env.h"
#include "ttg/util/hash.h"
#include "ttg/util/meta.h"
#include "ttg/util/meta/callable.h"
#include "ttg/util/print.h"
#include "ttg/util/scope_exit.h"
#include "ttg/util/trace.h"
#include "ttg/util/typelist.h"
#include "ttg/serialization/data_descriptor.h"
#include "ttg/parsec/fwd.h"
#include "ttg/parsec/buffer.h"
#include "ttg/parsec/devicescratch.h"
#include "ttg/parsec/thread_local.h"
#include "ttg/parsec/devicefunc.h"
#include "ttg/parsec/ttvalue.h"
#include <algorithm>
#include <array>
#include <cassert>
#include <cstring>
#include <experimental/type_traits>
#include <functional>
#include <future>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <numeric>
#include <sstream>
#include <string>
#include <tuple>
#include <vector>
#include <mpi.h>
#include <parsec.h>
#include <parsec/class/parsec_hash_table.h>
#include <parsec/data_internal.h>
#include <parsec/execution_stream.h>
#include <parsec/interfaces/interface.h>
#include <parsec/mca/device/device.h>
#include <parsec/parsec_comm_engine.h>
#include <parsec/parsec_internal.h>
#include <parsec/scheduling.h>
#include <parsec/remote_dep.h>
#include <parsec/mca/device/device_gpu.h>
#include <cstdlib>
#include "ttg/parsec/ttg_data_copy.h"
#include "ttg/parsec/ptr.h"
#include "ttg/parsec/task.h"
#include "ttg/parsec/parsec-ext.h"
#include "ttg/device/device.h"
#include <boost/type_index.hpp>
#include "ttg/make_tt.h"
Namespaces | |
ttg_parsec | |
this contains PaRSEC-based TTG functionality | |
ttg_parsec::detail | |
Macros | |
#define | TTG_USE_PARSEC 1 |
#define | TTG_PARSEC_DEFER_WRITER false |
Typedefs | |
typedef void(* | ttg_parsec::static_set_arg_fct_type) (void *, size_t, ttg::TTBase *) |
typedef std::pair< static_set_arg_fct_type, ttg::TTBase * > | ttg_parsec::static_set_arg_fct_call_t |
typedef std::tuple< int, void *, size_t > | ttg_parsec::static_set_arg_fct_arg_t |
Functions | |
void | parsec_taskpool_termination_detected (parsec_taskpool_t *tp) |
int | parsec_add_fetch_runtime_task (parsec_taskpool_t *tp, int tasks) |
bool & | ttg_parsec::detail::initialized_mpi () |
ttg_data_copy_t * | ttg_parsec::detail::find_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr) |
int | ttg_parsec::detail::find_index_of_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr) |
bool | ttg_parsec::detail::add_copy_to_task (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task) |
void | ttg_parsec::detail::remove_data_copy (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task) |
template<typename Value > | |
ttg_data_copy_t * | ttg_parsec::detail::create_new_datacopy (Value &&value) |
template<typename TT , std::size_t I> | |
void | ttg_parsec::detail::transfer_ownership_impl (ttg_data_copy_t *copy, int device) |
template<typename TT , std::size_t... Is> | |
void | ttg_parsec::detail::transfer_ownership (parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::hook (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::hook_cuda (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::hook_hip (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::hook_level_zero (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::evaluate_cuda (const parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::evaluate_hip (const parsec_task_t *parsec_task) |
template<typename TT > | |
parsec_hook_return_t | ttg_parsec::detail::evaluate_level_zero (const parsec_task_t *parsec_task) |
void | ttg_parsec::detail::release_data_copy (ttg_data_copy_t *copy) |
template<typename Value > | |
ttg_data_copy_t * | ttg_parsec::detail::register_data_copy (ttg_data_copy_t *copy_in, parsec_ttg_task_base_t *task, bool readonly) |
void | ttg_parsec::ttg_initialize (int argc, char **argv, int num_threads, parsec_context_t *ctx) |
void | ttg_parsec::ttg_finalize () |
ttg::World | ttg_parsec::ttg_default_execution_context () |
void | ttg_parsec::ttg_execute (ttg::World world) |
void | ttg_parsec::ttg_fence (ttg::World world) |
template<typename T > | |
void | ttg_parsec::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr) |
template<typename T > | |
void | ttg_parsec::ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr) |
void | ttg_parsec::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr) |
template<typename Callback > | |
void | ttg_parsec::ttg_register_callback (ttg::World world, Callback &&callback) |
ttg::Edge & | ttg_parsec::ttg_ctl_edge (ttg::World world) |
void | ttg_parsec::ttg_sum (ttg::World world, double &value) |
void | ttg_parsec::make_executable_hook (ttg::World &) |
template<typename T > | |
void | ttg_parsec::ttg_broadcast (::ttg::World world, T &data, int source_rank) |
Variables | |
std::map< uint64_t, static_set_arg_fct_call_t > | ttg_parsec::static_id_to_op_map |
std::mutex | ttg_parsec::static_map_mutex |
std::multimap< uint64_t, static_set_arg_fct_arg_t > | ttg_parsec::delayed_unpack_actions |
constexpr const int | ttg_parsec::detail::PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024 |
std::size_t | ttg_parsec::detail::max_inline_size = msg_t::max_payload_size |
bool | ttg_parsec::detail::all_devices_peer_access |
const parsec_symbol_t | ttg_parsec::detail::parsec_taskclass_param0 |
const parsec_symbol_t | ttg_parsec::detail::parsec_taskclass_param1 |
const parsec_symbol_t | ttg_parsec::detail::parsec_taskclass_param2 |
const parsec_symbol_t | ttg_parsec::detail::parsec_taskclass_param3 |
Macro Definition Documentation
◆ TTG_PARSEC_DEFER_WRITER
◆ TTG_USE_PARSEC
Function Documentation
◆ parsec_add_fetch_runtime_task()
int parsec_add_fetch_runtime_task | ( | parsec_taskpool_t * | tp, |
int | tasks | ||
) |
◆ parsec_taskpool_termination_detected()
void parsec_taskpool_termination_detected | ( | parsec_taskpool_t * | tp | ) |