Halide
|
Namespaces | |
Constants | |
Cuda | |
Metal | |
Qurt | |
Synchronization | |
Vulkan | |
Classes | |
class | BlockAllocator |
Allocator class interface for managing large contiguous blocks of memory, which are then sub-allocated into smaller regions of memory. More... | |
struct | BlockRegion |
struct | BlockResource |
class | BlockStorage |
struct | CacheEntry |
struct | CpuFeatures |
struct | device_copy |
struct | HalideSystemAllocatorFns |
struct | HashMap |
class | LinkedList |
class | MemoryArena |
struct | MemoryBlock |
struct | MemoryBlockAllocatorFns |
struct | MemoryProperties |
struct | MemoryRange |
struct | MemoryRegion |
struct | MemoryRegionAllocatorFns |
struct | MemoryRequest |
class | PointerTable |
class | RegionAllocator |
Allocator class interface for sub-allocating a contiguous memory block into smaller regions of memory. More... | |
struct | ScopedMutexLock |
struct | ScopedSpinLock |
class | StackPrinter |
class | StringStorage |
class | StringTable |
struct | StringUtils |
struct | SystemMemoryAllocatorFns |
struct | THashMap |
struct | work |
struct | work_queue_t |
Typedefs | |
typedef void(* | copy_value_func) (uint8_t *dst, const uint8_t *src, size_t size) |
typedef void(* | destroy_value_func) (uint8_t *value, size_t size) |
typedef void *(* | AllocateSystemFn) (void *, size_t) |
typedef void(* | DeallocateSystemFn) (void *, void *) |
typedef int(* | AllocateBlockFn) (void *, MemoryBlock *) |
typedef int(* | DeallocateBlockFn) (void *, MemoryBlock *) |
typedef int(* | AllocateRegionFn) (void *, MemoryRegion *) |
typedef int(* | DeallocateRegionFn) (void *, MemoryRegion *) |
template<uint64_t buffer_length = default_printer_buffer_length> | |
using | StackBasicPrinter = StackPrinter< BasicPrinterType, buffer_length > |
template<uint64_t buffer_length = default_printer_buffer_length> | |
using | StackErrorPrinter = StackPrinter< ErrorPrinterType, buffer_length > |
template<uint64_t buffer_length = default_printer_buffer_length> | |
using | StackStringStreamPrinter = StackPrinter< StringStreamPrinterType, buffer_length > |
typedef void*(* Halide::Runtime::Internal::AllocateSystemFn) (void *, size_t) |
Definition at line 182 of file memory_resources.h.
typedef void(* Halide::Runtime::Internal::DeallocateSystemFn) (void *, void *) |
Definition at line 183 of file memory_resources.h.
typedef int(* Halide::Runtime::Internal::AllocateBlockFn) (void *, MemoryBlock *) |
Definition at line 203 of file memory_resources.h.
typedef int(* Halide::Runtime::Internal::DeallocateBlockFn) (void *, MemoryBlock *) |
Definition at line 204 of file memory_resources.h.
typedef int(* Halide::Runtime::Internal::AllocateRegionFn) (void *, MemoryRegion *) |
Definition at line 211 of file memory_resources.h.
typedef int(* Halide::Runtime::Internal::DeallocateRegionFn) (void *, MemoryRegion *) |
Definition at line 212 of file memory_resources.h.
using Halide::Runtime::Internal::StackBasicPrinter = typedef StackPrinter<BasicPrinterType, buffer_length> |
using Halide::Runtime::Internal::StackErrorPrinter = typedef StackPrinter<ErrorPrinterType, buffer_length> |
using Halide::Runtime::Internal::StackStringStreamPrinter = typedef StackPrinter<StringStreamPrinterType, buffer_length> |
|
strong |
Enumerator | |
---|---|
InvalidStatus | |
InUse | |
Available | |
Purgeable | |
Dedicated |
Definition at line 14 of file memory_resources.h.
|
strong |
Enumerator | |
---|---|
InvalidVisibility | |
HostOnly | |
DeviceOnly | |
DeviceToHost | |
HostToDevice | |
DefaultVisibility |
Definition at line 24 of file memory_resources.h.
|
strong |
Enumerator | |
---|---|
InvalidUsage | |
StaticStorage | |
DynamicStorage | |
UniformStorage | |
TransferSrc | |
TransferDst | |
TransferSrcDst | |
DefaultUsage |
Definition at line 35 of file memory_resources.h.
|
strong |
Enumerator | |
---|---|
InvalidCaching | |
Cached | |
Uncached | |
CachedCoherent | |
UncachedCoherent | |
DefaultCaching |
Definition at line 47 of file memory_resources.h.
WEAK CpuFeatures Halide::Runtime::Internal::halide_get_cpu_features | ( | ) |
WEAK void Halide::Runtime::Internal::copy_memory_helper | ( | const device_copy & | copy, |
int | d, | ||
int64_t | src_off, | ||
int64_t | dst_off | ||
) |
Definition at line 47 of file device_buffer_utils.h.
References Halide::Runtime::Internal::device_copy::chunk_size, Halide::Runtime::Internal::device_copy::dst, Halide::Runtime::Internal::device_copy::dst_stride_bytes, Halide::Runtime::Internal::device_copy::extent, memcpy(), Halide::Runtime::Internal::device_copy::src, and Halide::Runtime::Internal::device_copy::src_stride_bytes.
WEAK void Halide::Runtime::Internal::copy_memory | ( | const device_copy & | copy, |
void * | user_context | ||
) |
Definition at line 66 of file device_buffer_utils.h.
WEAK device_copy Halide::Runtime::Internal::make_buffer_copy | ( | const halide_buffer_t * | src, |
bool | src_host, | ||
const halide_buffer_t * | dst, | ||
bool | dst_host | ||
) |
Definition at line 76 of file device_buffer_utils.h.
WEAK device_copy Halide::Runtime::Internal::make_host_to_device_copy | ( | const halide_buffer_t * | buf | ) |
Definition at line 164 of file device_buffer_utils.h.
WEAK device_copy Halide::Runtime::Internal::make_device_to_host_copy | ( | const halide_buffer_t * | buf | ) |
Definition at line 168 of file device_buffer_utils.h.
ALWAYS_INLINE int64_t Halide::Runtime::Internal::calc_device_crop_byte_offset | ( | const struct halide_buffer_t * | src, |
struct halide_buffer_t * | dst | ||
) |
Definition at line 173 of file device_buffer_utils.h.
ALWAYS_INLINE int64_t Halide::Runtime::Internal::calc_device_slice_byte_offset | ( | const struct halide_buffer_t * | src, |
int | slice_dim, | ||
int | slice_pos | ||
) |
Definition at line 184 of file device_buffer_utils.h.
References halide_buffer_t::dim, halide_dimension_t::min, halide_dimension_t::stride, and halide_buffer_t::type.
bool Halide::Runtime::Internal::any_zero | ( | const Container & | c | ) |
Definition at line 148 of file HalideBuffer.h.
ALWAYS_INLINE bool Halide::Runtime::Internal::is_power_of_two_alignment | ( | size_t | x | ) |
Definition at line 122 of file memory_resources.h.
Referenced by aligned_offset().
ALWAYS_INLINE size_t Halide::Runtime::Internal::aligned_offset | ( | size_t | offset, |
size_t | alignment | ||
) |
Definition at line 128 of file memory_resources.h.
References halide_abort_if_false, and is_power_of_two_alignment().
Referenced by aligned_size(), Halide::Internal::HexagonAlignmentAnalyzer::is_aligned(), and Halide::Internal::HexagonAlignmentAnalyzer::is_aligned_impl().
ALWAYS_INLINE size_t Halide::Runtime::Internal::conform_alignment | ( | size_t | requested, |
size_t | required | ||
) |
Definition at line 135 of file memory_resources.h.
References Halide::max().
ALWAYS_INLINE size_t Halide::Runtime::Internal::aligned_size | ( | size_t | offset, |
size_t | size, | ||
size_t | alignment | ||
) |
Definition at line 142 of file memory_resources.h.
References aligned_offset().
Referenced by conform_size().
ALWAYS_INLINE size_t Halide::Runtime::Internal::conform_size | ( | size_t | offset, |
size_t | size, | ||
size_t | alignment, | ||
size_t | nearest_multiple | ||
) |
Definition at line 151 of file memory_resources.h.
References aligned_size().
ALWAYS_INLINE size_t Halide::Runtime::Internal::clamped_size | ( | size_t | value, |
size_t | min_value, | ||
size_t | max_value | ||
) |
Definition at line 163 of file memory_resources.h.
const ALWAYS_INLINE void* Halide::Runtime::Internal::offset_address | ( | const void * | address, |
size_t | byte_offset | ||
) |
Definition at line 169 of file memory_resources.h.
Referenced by Halide::Runtime::Internal::BlockStorage::back(), and Halide::Runtime::Internal::BlockStorage::operator[]().
ALWAYS_INLINE void* Halide::Runtime::Internal::offset_address | ( | void * | address, |
size_t | byte_offset | ||
) |
Definition at line 175 of file memory_resources.h.
ALWAYS_INLINE void* Halide::Runtime::Internal::native_system_malloc | ( | void * | user_context, |
size_t | bytes | ||
) |
Definition at line 185 of file memory_resources.h.
Referenced by Halide::Runtime::Internal::PointerTable::default_allocator(), and Halide::Runtime::Internal::BlockStorage::default_allocator().
ALWAYS_INLINE void Halide::Runtime::Internal::native_system_free | ( | void * | user_context, |
void * | ptr | ||
) |
Definition at line 189 of file memory_resources.h.
Referenced by Halide::Runtime::Internal::PointerTable::default_allocator(), and Halide::Runtime::Internal::BlockStorage::default_allocator().
Definition at line 42 of file objc_support.h.
References objc_getClass(), objc_msgSend(), and sel_getUid().
Definition at line 50 of file objc_support.h.
References objc_msgSend(), and sel_getUid().
Definition at line 56 of file objc_support.h.
References objc_msgSend(), and sel_getUid().
Definition at line 62 of file objc_support.h.
References objc_msgSend(), and sel_getUid().
Referenced by ns_log_object(), and ns_log_utf8_string().
WEAK objc_id Halide::Runtime::Internal::wrap_string_as_ns_string | ( | const char * | string, |
size_t | length | ||
) |
Definition at line 68 of file objc_support.h.
References objc_getClass(), objc_msgSend(), and sel_getUid().
Referenced by ns_log_object(), and ns_log_utf8_string().
size_t Halide::Runtime::Internal::strlen | ( | const char * | string | ) |
WEAK void Halide::Runtime::Internal::ns_log_utf8_string | ( | const char * | string | ) |
Definition at line 80 of file objc_support.h.
References NSLog(), release_ns_object(), strlen(), and wrap_string_as_ns_string().
Definition at line 88 of file objc_support.h.
References NSLog(), release_ns_object(), and wrap_string_as_ns_string().
ALWAYS_INLINE int Halide::Runtime::Internal::clamp_num_threads | ( | int | threads | ) |
Definition at line 74 of file thread_pool_common.h.
Referenced by enqueue_work_already_locked(), and halide_set_num_threads().
WEAK int Halide::Runtime::Internal::default_desired_num_threads | ( | ) |
Definition at line 84 of file thread_pool_common.h.
References atoi(), getenv(), and halide_host_cpu_count().
Referenced by enqueue_work_already_locked(), and halide_set_num_threads().
WEAK void Halide::Runtime::Internal::worker_thread | ( | void * | arg | ) |
Definition at line 440 of file thread_pool_common.h.
References halide_mutex_lock(), halide_mutex_unlock(), Halide::Runtime::Internal::work_queue_t::mutex, work_queue, and worker_thread_already_locked().
Referenced by enqueue_work_already_locked().
Definition at line 205 of file thread_pool_common.h.
References Halide::Runtime::Internal::work_queue_t::a_team_size, Halide::Runtime::Internal::work::active_workers, halide_parallel_task_t::closure, dump_job_state, Halide::Runtime::Internal::work::exit_status, halide_parallel_task_t::extent, halide_parallel_task_t::fn, halide_cond_broadcast(), halide_cond_wait(), halide_do_loop_task(), halide_do_task(), halide_error_code_success, halide_mutex_lock(), halide_mutex_unlock(), halide_thread_yield(), Halide::Runtime::Internal::work_queue_t::jobs, log_message, Halide::Runtime::Internal::work::make_runnable(), halide_parallel_task_t::min, halide_parallel_task_t::min_threads, Halide::Runtime::Internal::work_queue_t::mutex, halide_parallel_task_t::name, Halide::Runtime::Internal::work::next_job, Halide::Runtime::Internal::work::owner_is_sleeping, Halide::Runtime::Internal::work_queue_t::owners_sleeping, Halide::Runtime::Internal::work::parent_job, print_job, Halide::Runtime::Internal::work::running(), halide_parallel_task_t::serial, Halide::Runtime::Internal::work_queue_t::shutdown, Halide::Runtime::Internal::work::sibling_count, Halide::Runtime::Internal::work::siblings, Halide::Runtime::Internal::work_queue_t::target_a_team_size, Halide::Runtime::Internal::work::task, Halide::Runtime::Internal::work::task_fn, Halide::Runtime::Internal::work_queue_t::threads_created, Halide::Runtime::Internal::work::threads_reserved, Halide::Runtime::Internal::work_queue_t::threads_reserved, Halide::Runtime::Internal::work::user_context, Halide::Runtime::Internal::work_queue_t::wake_a_team, Halide::Runtime::Internal::work_queue_t::wake_b_team, Halide::Runtime::Internal::work_queue_t::wake_owners, work_queue, and Halide::Runtime::Internal::work_queue_t::workers_sleeping.
Referenced by worker_thread().
WEAK void Halide::Runtime::Internal::enqueue_work_already_locked | ( | int | num_jobs, |
work * | jobs, | ||
work * | task_parent | ||
) |
Definition at line 446 of file thread_pool_common.h.
References Halide::Runtime::Internal::work_queue_t::a_team_size, Halide::Runtime::Internal::work::active_workers, Halide::Runtime::Internal::work_queue_t::assert_zeroed(), clamp_num_threads(), default_desired_num_threads(), Halide::Runtime::Internal::work_queue_t::desired_threads_working, halide_parallel_task_t::extent, halide_abort_if_false, halide_cond_broadcast(), halide_spawn_thread(), Halide::Runtime::Internal::work_queue_t::initialized, Halide::Runtime::Internal::work_queue_t::jobs, log_message, halide_parallel_task_t::min_threads, halide_parallel_task_t::name, Halide::Runtime::Internal::work::next_job, Halide::Runtime::Internal::work_queue_t::owners_sleeping, Halide::Runtime::Internal::work::sibling_count, Halide::Runtime::Internal::work::siblings, Halide::Runtime::Internal::work_queue_t::target_a_team_size, Halide::Runtime::Internal::work::task, Halide::Runtime::Internal::work_queue_t::threads, Halide::Runtime::Internal::work_queue_t::threads_created, Halide::Runtime::Internal::work::threads_reserved, Halide::Runtime::Internal::work_queue_t::threads_reserved, Halide::Runtime::Internal::work_queue_t::wake_a_team, Halide::Runtime::Internal::work_queue_t::wake_b_team, Halide::Runtime::Internal::work_queue_t::wake_owners, work_queue, worker_thread(), and Halide::Runtime::Internal::work_queue_t::workers_sleeping.
size_t Halide::Runtime::Internal::get_allocated_system_memory | ( | ) |
void* Halide::Runtime::Internal::allocate_system | ( | void * | user_context, |
size_t | bytes | ||
) |
void Halide::Runtime::Internal::deallocate_system | ( | void * | user_context, |
void * | aligned_ptr | ||
) |
|
constexpr |
WEAK work_queue_t Halide::Runtime::Internal::work_queue = {} |
Definition at line 168 of file thread_pool_common.h.
Referenced by enqueue_work_already_locked(), halide_default_semaphore_release(), halide_set_num_threads(), halide_shutdown_thread_pool(), worker_thread(), and worker_thread_already_locked().
WEAK halide_do_task_t Halide::Runtime::Internal::custom_do_task = halide_default_do_task |
Definition at line 574 of file thread_pool_common.h.
Referenced by halide_set_custom_do_task(), and halide_set_custom_parallel_runtime().
WEAK halide_do_loop_task_t Halide::Runtime::Internal::custom_do_loop_task = halide_default_do_loop_task |
Definition at line 575 of file thread_pool_common.h.
Referenced by halide_set_custom_do_loop_task(), and halide_set_custom_parallel_runtime().
WEAK halide_do_par_for_t Halide::Runtime::Internal::custom_do_par_for = halide_default_do_par_for |
Definition at line 576 of file thread_pool_common.h.
Referenced by halide_set_custom_do_par_for(), and halide_set_custom_parallel_runtime().
WEAK halide_do_parallel_tasks_t Halide::Runtime::Internal::custom_do_parallel_tasks = halide_default_do_parallel_tasks |
Definition at line 577 of file thread_pool_common.h.
Referenced by halide_set_custom_parallel_runtime().
WEAK halide_semaphore_init_t Halide::Runtime::Internal::custom_semaphore_init = halide_default_semaphore_init |
Definition at line 578 of file thread_pool_common.h.
Referenced by halide_semaphore_init(), and halide_set_custom_parallel_runtime().
WEAK halide_semaphore_try_acquire_t Halide::Runtime::Internal::custom_semaphore_try_acquire = halide_default_semaphore_try_acquire |
Definition at line 579 of file thread_pool_common.h.
Referenced by halide_semaphore_try_acquire(), and halide_set_custom_parallel_runtime().
WEAK halide_semaphore_release_t Halide::Runtime::Internal::custom_semaphore_release = halide_default_semaphore_release |
Definition at line 580 of file thread_pool_common.h.
Referenced by halide_semaphore_release(), and halide_set_custom_parallel_runtime().