diff --git a/device/include/roughpy/device/kernel_arg.h b/device/include/roughpy/device/kernel_arg.h index 6aa8f8704..3114d3e75 100644 --- a/device/include/roughpy/device/kernel_arg.h +++ b/device/include/roughpy/device/kernel_arg.h @@ -37,7 +37,6 @@ namespace rpy { namespace devices { - class RPY_EXPORT KernelArgument { @@ -84,47 +83,45 @@ class RPY_EXPORT KernelArgument m_info(dtl::type_info()) {} - RPY_NO_DISCARD - constexpr bool is_buffer() const noexcept { + RPY_NO_DISCARD constexpr bool is_buffer() const noexcept + { return m_mode == BufferPointer || m_mode == ConstBufferPointer; } - RPY_NO_DISCARD - constexpr bool is_const() const noexcept { + RPY_NO_DISCARD constexpr bool is_const() const noexcept + { return m_mode == ConstPointer || m_mode == ConstBufferPointer; } - RPY_NO_DISCARD - constexpr void* pointer() const noexcept { + RPY_NO_DISCARD constexpr void* pointer() const noexcept + { RPY_DBG_ASSERT(m_mode == Pointer); return p_data; } - RPY_NO_DISCARD - constexpr const void* const_pointer() const noexcept { + RPY_NO_DISCARD constexpr const void* const_pointer() const noexcept + { RPY_DBG_ASSERT(!is_buffer()); return (m_mode == Pointer) ? p_data : p_const_data; } - RPY_NO_DISCARD - constexpr Buffer& buffer() const noexcept { + RPY_NO_DISCARD constexpr Buffer& buffer() const noexcept + { RPY_DBG_ASSERT(m_mode == BufferPointer); return *p_buffer; } - RPY_NO_DISCARD - constexpr const Buffer& const_buffer() const noexcept { + RPY_NO_DISCARD constexpr const Buffer& const_buffer() const noexcept + { RPY_DBG_ASSERT(is_buffer()); - return (m_mode == BufferPointer) ? *p_buffer : *p_const_buffer; + return (m_mode == BufferPointer) ? static_cast(*p_buffer) + : *p_const_buffer; } - RPY_NO_DISCARD - constexpr dimn_t size() const noexcept { + RPY_NO_DISCARD constexpr dimn_t size() const noexcept + { return (is_buffer()) ? sizeof(void*) : m_info.bytes; } - - - }; }// namespace devices diff --git a/device/src/buffer_interface.cpp b/device/src/buffer_interface.cpp index da4091f4f..5b22b2ae9 100644 --- a/device/src/buffer_interface.cpp +++ b/device/src/buffer_interface.cpp @@ -46,9 +46,3 @@ BufferMode BufferInterface::mode() const { dimn_t BufferInterface::size() const { return 0; } - -void* BufferInterface::ptr() { - return nullptr; -} - -void* BufferInterface::ptr() const { return nullptr; } diff --git a/device/src/cpu/cpu_kernel.cpp b/device/src/cpu/cpu_kernel.cpp index 584172a99..b34221180 100644 --- a/device/src/cpu/cpu_kernel.cpp +++ b/device/src/cpu/cpu_kernel.cpp @@ -55,11 +55,7 @@ Event CPUKernel::launch_kernel_async( Slice args ) { - if (queue.is_default() && m_fallback != nullptr) { - m_fallback(args.begin(), params.total_work_dims()); - } - - return KernelInterface::launch_kernel_async(queue, params, args); + return Event(); } std::unique_ptr CPUKernel::clone() const { diff --git a/device/src/kernel_arg.cpp b/device/src/kernel_arg.cpp index 5e6fe4191..a627d1b81 100644 --- a/device/src/kernel_arg.cpp +++ b/device/src/kernel_arg.cpp @@ -35,10 +35,3 @@ using namespace rpy; using namespace rpy::devices; - -void* devices::arg_to_pointer(const Buffer& buffer) { - return buffer.ptr(); -} -void* devices::arg_to_pointer(Buffer& buffer) { - return buffer.ptr(); -} diff --git a/device/src/opencl/ocl_kernel.cpp b/device/src/opencl/ocl_kernel.cpp index ac70adfb9..a602bdd10 100644 --- a/device/src/opencl/ocl_kernel.cpp +++ b/device/src/opencl/ocl_kernel.cpp @@ -151,7 +151,7 @@ void check_and_set_argument( device->context(), flags, buf_ref.size(), - buf_ref.ptr(), + static_cast(const_cast(buf_ref.ptr())), &ecode ); if (new_buffer == nullptr) { RPY_HANDLE_OCL_ERROR(ecode); } @@ -229,7 +229,6 @@ Event OCLKernel::launch_kernel_async( ) { RPY_DBG_ASSERT(m_kernel != nullptr); - RPY_DBG_ASSERT(args.size() == arg_sizes.size()); auto n_args = num_args(); RPY_DBG_ASSERT(args.size() == n_args);