From 2b0735857394f21e791bd3123cdb2e32ceb07476 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Sun, 8 Sep 2024 16:19:05 +0200 Subject: [PATCH 01/11] Update benchmarks to additionall benchmark the file extraction speeds --- PhotoshopBenchmark/src/main.cpp | 68 +++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/PhotoshopBenchmark/src/main.cpp b/PhotoshopBenchmark/src/main.cpp index 5ec3a308..25e2c68d 100644 --- a/PhotoshopBenchmark/src/main.cpp +++ b/PhotoshopBenchmark/src/main.cpp @@ -4,6 +4,7 @@ #include #include +#include const static std::filesystem::path outStats = "benchmarkStatisticsPSAPI.txt"; @@ -37,6 +38,45 @@ void readWriteFile(const int repeats, const std::filesystem::path& readPath, con } +// Read the file and benchmark layer extraction speeds +template +void readFileExtractData(const int repeats, const std::filesystem::path& readPath, const std::filesystem::path& writePath, const std::string& benchName) +{ + using namespace NAMESPACE_PSAPI; + + for (int i = 0; i < repeats + 1; ++i) + { + // Run a dry-run first which we do not profile to warm up + if (i == 0) + { + auto res = LayeredFile::read(readPath); + continue; + } + Instrumentor::Get().BeginSession(readPath.string() + "Extract" + std::to_string(i), readPath.string() + "Extract" + std::to_string(i) + ".json"); + LayeredFile layeredFile; + { + Profiler readProfiler{ outStats , "read" + benchName }; + layeredFile = LayeredFile::read(readPath); + } + { + // Extract all the flat layers and get the image data out of any image layers. While in this case it would be trivial to parallelize this to use up + // all threads we want to simulate an environment where this extraction doesnt happen in one go + Profiler extractProfiler{ outStats, "extract" + benchName }; + for (const auto& layer : layeredFile.generateFlatLayers(std::nullopt, LayerOrder::forward)) + { + if (auto imageLayer = dynamic_pointer_cast>(layer)) + { + auto data = imageLayer->getImageData(); + std::cout << data.size(); + } + } + std::cout << std::endl; + } + Instrumentor::Get().EndSession(); + } +} + + // Read and write the file while changing the compression type to zip to get smaller files template void readWriteFileChangeCompression(const int repeats, const std::filesystem::path& readPath, const std::filesystem::path& writePath, const std::string& benchName) @@ -66,11 +106,31 @@ void readWriteFileChangeCompression(const int repeats, const std::filesystem::pa -int main() +int main(int argc, char* argv[]) { using namespace NAMESPACE_PSAPI; static const int repeats = 3u; + // Tokenize the arguments + std::vector tokens; + for (int i = 1; i < argc; ++i) + { + tokens.push_back(std::string(argv[i])); + } + + // Run only the extraction part of the test + if (std::find(tokens.begin(), tokens.end(), "--extract-only") != tokens.end()) + { + // Benchmark how fast extraction of layers is + readFileExtractData(repeats, "documents/read/large_file_8bit.psb", "documents/write/large_file_8bit.psb", "Automotive Data (8-bit) ~1.27GB"); + readFileExtractData(repeats, "documents/read/large_file_16bit.psb", "documents/write/large_file_16bit.psb", "Automotive Data (16-bit) ~1.97GB"); + readFileExtractData(repeats, "documents/read/large_file_32bit.psb", "documents/write/large_file_32bit.psb", "Automotive Data (32-bit) ~3.65GB"); + readFileExtractData(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreations_8bit.psd", "Glacious Hyundai Sample (8-bit) ~.75GB"); + readFileExtractData(repeats, "documents/read/deep_nesting_8bit.psb", "documents/write/deep_nesting_8bit.psb", "Deep Nested Layers (8-bit) ~.5GB"); + return 0; + } + + // These files are just here to test the size of single layer photoshop files //readWriteFile(1u, "documents/read/single_layer_16bit.psb", "documents/write/single_layer_16bit.psb", "single_layer_16bit"); //readWriteFile(1u, "documents/read/single_layer_32bit.psb", "documents/write/single_layer_32bit.psb", "single_layer_32bit"); @@ -80,8 +140,10 @@ int main() readWriteFileChangeCompression(repeats, "documents/read/large_file_8bit.psb", "documents/write/large_fileZip_8bit.psb", "Automotive Data Zip (8-bit) ~1.27GB"); readWriteFile(repeats, "documents/read/large_file_16bit.psb", "documents/write/large_file_16bit.psb", "Automotive Data (16-bit) ~1.97GB"); readWriteFile(repeats, "documents/read/large_file_32bit.psb", "documents/write/large_file_32bit.psb", "Automotive Data (32-bit) ~3.65GB"); - readWriteFile(repeats, "documents/read/HyundaiGenesis_GlaciusCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciusCreations_8bit.psd", "Glacius Hyundai Sample (8-bit) ~.75GB"); + readWriteFile(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreations_8bit.psd", "Glacious Hyundai Sample (8-bit) ~.75GB"); readWriteFile(repeats, "documents/read/deep_nesting_8bit.psb", "documents/write/deep_nesting_8bit.psb", "Deep Nested Layers (8-bit) ~.5GB"); // Benchmark how changing the compression reduces the file size - readWriteFileChangeCompression(repeats, "documents/read/HyundaiGenesis_GlaciusCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciusCreationsZip_8bit.psd", "Glacius Hyundai Sample Zip (8-bit) ~.75GB"); + readWriteFileChangeCompression(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreationsZip_8bit.psd", "Glacious Hyundai Sample Zip (8-bit) ~.75GB"); + + } \ No newline at end of file From c4e528d8119be9ac2b08e6186a67aed7ca6063f4 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:01:52 +0200 Subject: [PATCH 02/11] Make channel extraction multithreaded giving us ~5x speedups --- PhotoshopAPI/src/Core/Struct/ImageChannel.h | 133 +++++++++++++++--- PhotoshopAPI/src/Core/Struct/ThreadPool.h | 100 +++++++++++++ .../src/LayeredFile/LayerTypes/ImageLayer.h | 23 ++- .../PhotoshopFile/LayerAndMaskInformation.cpp | 39 ++++- .../PhotoshopFile/LayerAndMaskInformation.h | 2 +- 5 files changed, 264 insertions(+), 33 deletions(-) create mode 100644 PhotoshopAPI/src/Core/Struct/ThreadPool.h diff --git a/PhotoshopAPI/src/Core/Struct/ImageChannel.h b/PhotoshopAPI/src/Core/Struct/ImageChannel.h index 23c00a2c..04c6de0c 100644 --- a/PhotoshopAPI/src/Core/Struct/ImageChannel.h +++ b/PhotoshopAPI/src/Core/Struct/ImageChannel.h @@ -6,6 +6,7 @@ #include "Profiling/Memory/CompressionTracker.h" #include "PhotoshopFile/FileHeader.h" #include "CoordinateUtil.h" +#include "ThreadPool.h" #include "blosc2.h" @@ -15,6 +16,14 @@ #include #include +// If we compile with C++<20 we replace the stdlib implementation with the compatibility +// library +#if (__cplusplus < 202002L) +#include "tcb_span.hpp" +#else +#include +#endif + #define __STDC_FORMAT_MACROS 1 #include @@ -30,8 +39,8 @@ PSAPI_NAMESPACE_BEGIN struct ImageChannel { /// The size of each sub-chunk in the super-chunk. For more information about what a chunk and super-chunk is - /// please refer to the c-blosc2 documentation - static const uint64_t m_ChunkSize = 16384 * 16384; + /// please refer to the c-blosc2 documentation. Defaults to 2MB + static const uint64_t m_ChunkSize = 1024 * 1024 * 2; /// This does not indicate the compression method of the channel in memory /// but rather the compression method it writes the PhotoshopFile with Enum::Compression m_Compression = Enum::Compression::Raw; @@ -41,15 +50,30 @@ struct ImageChannel uint64_t m_OrigByteSize = 0u; + /// Get the width of the uncompressed ImageChannel + int32_t getWidth() const { return m_Width; }; + /// Get the height of the uncompressed ImageChannel + int32_t getHeight() const { return m_Height; }; + /// Get the x-coordinate of the uncompressed ImageChannel + float getCenterX() const { return m_XCoord; }; + /// Get the y-coordinate of the uncompressed ImageChannel + float getCenterY() const { return m_YCoord; }; + /// Get the total number of chunks held in the ImageChannel + uint64_t getNumChunks() const { return m_NumChunks; }; + + /// Extract the data from the image channel and invalidate it (can only be called once). /// If the image data does not exist yet we simply return an empty vector. If the data /// was already freed we throw + /// + /// \param numThreads The number of threads to use for decompression. By default this is 0 which will set it to hardware_concurrency. + /// If you are calling this in a non-threaded environment this is likely the option you should choose // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template - std::vector extractData() { + std::vector extractData(size_t numThreads = 0) { PROFILE_FUNCTION(); - auto buffer = getData(); + auto buffer = getData(numThreads); if (buffer.size() > 0) { blosc2_schunk_free(m_Data); @@ -59,42 +83,113 @@ struct ImageChannel return std::vector(); } + /// Extract the data from the image channel and invalidate it (can only be called once). + /// If the image data does not exist yet we simply return an empty vector. If the data + /// was already freed we throw + /// + /// \param buffer A preallocated buffer whose size matches that of m_OrigByteSize / sizeof(T). If this is not given we throw an error + /// \param numThreads The number of threads to use for decompression. By default this is 0 which will set it to hardware_concurrency. + /// If you are calling this in a non-threaded environment this is likely the option you should choose + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + template + void extractData(std::span buffer, size_t numThreads = 0) { + PROFILE_FUNCTION(); + + if (!m_Data) + { + PSAPI_LOG_WARNING("ImageChannel", "extractData() called without the channel having been initialized yet, returning without having filled the given buffer"); + return; + } + + getData(buffer, numThreads); + blosc2_schunk_free(m_Data); + m_wasFreed = true; + } + - /// Copy the image data out of the ImageChannel, does not free the data afterwards. Returns an empty vector if the - /// data does not exist yet. If the data was already freed we throw + /// Copy the image data out of the ImageChannel using a preallocated buffer, does not free the data afterwards. If the data was already freed we throw + /// + /// \param buffer A preallocated buffer whose size matches that of m_OrigByteSize / sizeof(T). If this is not given we throw an error + /// \param numThreads The number of threads to use for decompression. By default this is 0 which will set it to hardware_concurrency. + /// If you are calling this in a non-threaded environment this is likely the option you should choose // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template - std::vector getData() + void getData(std::span buffer, size_t numThreads = 0) { PROFILE_FUNCTION(); + if (!m_Data) { PSAPI_LOG_WARNING("ImageChannel", "Channel data does not exist yet, was it initialized?"); - return std::vector(); + return; } if (m_wasFreed) { PSAPI_LOG_ERROR("ImageChannel", "Data was already freed, cannot extract it anymore"); } + if (buffer.size() != m_OrigByteSize / sizeof(T)) + { + PSAPI_LOG_ERROR("ImageChannel", "getData() buffer must be exactly the size of m_OrigByteSize / sizeof(T)"); + } - std::vector buffer(m_OrigByteSize / sizeof(T), 0); + // Set thread number to hardware concurrency if we dont detect threading + if (numThreads == 0) + { + numThreads = std::thread::hardware_concurrency(); + } + + Internal::ThreadPool pool(numThreads); uint64_t remainingSize = m_OrigByteSize; + std::vector contexts; + std::vector> futures; // To store future objects for each task + + blosc2_dparams params = BLOSC2_DPARAMS_DEFAULTS; + + for (uint64_t nchunk = 0; nchunk < m_NumChunks; ++nchunk) { + // Create a unique context + contexts.push_back(blosc2_create_dctx(*m_Data->storage->dparams)); + void* ptr = reinterpret_cast(buffer.data()) + nchunk * m_ChunkSize; if (remainingSize > m_ChunkSize) { - blosc2_schunk_decompress_chunk(m_Data, nchunk, ptr, m_ChunkSize); + futures.emplace_back(pool.enqueue([=]() { + blosc2_decompress_ctx(contexts.back(), m_Data->data[nchunk], std::numeric_limits::max(), ptr, m_ChunkSize); + })); remainingSize -= m_ChunkSize; } else { - blosc2_schunk_decompress_chunk(m_Data, nchunk, ptr, remainingSize); + futures.emplace_back(pool.enqueue([=]() { + blosc2_decompress_ctx(contexts.back(), m_Data->data[nchunk], std::numeric_limits::max(), ptr, remainingSize); + })); remainingSize = 0; } } + + // Wait for all tasks to complete + for (auto& future : futures) { + future.wait(); + } + } + + + /// Copy the image data out of the ImageChannel, does not free the data afterwards. Returns an empty vector if the + /// data does not exist yet. If the data was already freed we throw + /// + /// \param numThreads The number of threads to use for decompression. By default this is 0 which will set it to hardware_concurrency. + /// If you are calling this in a non-threaded environment this is likely the option you should choose + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + template + std::vector getData(size_t numThreads = 0) + { + std::vector buffer(m_OrigByteSize / sizeof(T)); + getData(std::span(buffer), numThreads); return buffer; } @@ -178,17 +273,6 @@ struct ImageChannel } - /// Get the width of the uncompressed ImageChannel - int32_t getWidth() const { return m_Width; }; - /// Get the height of the uncompressed ImageChannel - int32_t getHeight() const { return m_Height; }; - /// Get the x-coordinate of the uncompressed ImageChannel - float getCenterX() const { return m_XCoord; }; - /// Get the y-coordinate of the uncompressed ImageChannel - float getCenterY() const { return m_YCoord; }; - /// Get the total number of chunks held in the ImageChannel - uint64_t getNumChunks() const { return m_NumChunks; }; - // On destruction free the blosc2 schunk if it wasnt freed yet ~ImageChannel() { @@ -197,7 +281,10 @@ struct ImageChannel m_wasFreed = true; } ImageChannel() = default; + + private: + blosc2_schunk* m_Data = nullptr; /// Total number of chunks in the super-chunk uint64_t m_NumChunks = 0u; @@ -209,6 +296,8 @@ struct ImageChannel float m_XCoord = 0.0f; float m_YCoord = 0.0f; +private: + // Initialize a blosc2 superchunk from a given data span, maybe we could augment this to give control over compression params? // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- diff --git a/PhotoshopAPI/src/Core/Struct/ThreadPool.h b/PhotoshopAPI/src/Core/Struct/ThreadPool.h new file mode 100644 index 00000000..0ae672ab --- /dev/null +++ b/PhotoshopAPI/src/Core/Struct/ThreadPool.h @@ -0,0 +1,100 @@ +#pragma once + +#include "Macros.h" + +#include +#include +#include +#include +#include +#include +#include + + +PSAPI_NAMESPACE_BEGIN + +namespace Internal +{ + + /// An extremely barebones ThreadPool, it is not encouraged to use this for your project and + /// instead use one of the many implementations out there. + class ThreadPool { + public: + + /// Constructor: Initialize the ThreadPool with the given number of threads + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + inline explicit ThreadPool(size_t numThreads) + { + for (size_t i = 0; i < numThreads; ++i) { + m_Workers.emplace_back([this]() { + while (true) { + std::function task; + { + std::unique_lock lock(this->m_QueueMutex); + this->m_Condition.wait(lock, [this]() { return this->m_Stopped || !this->m_Tasks.empty(); }); + if (this->m_Stopped && this->m_Tasks.empty()) return; + task = std::move(this->m_Tasks.front()); + this->m_Tasks.pop(); + } + task(); + } + }); + } + } + + /// Default constructor: uses the hardware concurrency to set the number of threads + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + inline ThreadPool() : ThreadPool(std::thread::hardware_concurrency()) {} + + // Destructor: waits for all threads to finish + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + inline ~ThreadPool() + { + { + std::unique_lock lock(m_QueueMutex); + m_Stopped = true; + } + m_Condition.notify_all(); + for (std::thread& worker : m_Workers) worker.join(); + } + + // Enqueue a task onto the ThreadPools worker queue + // --------------------------------------------------------------------------------------------------------------------- + // --------------------------------------------------------------------------------------------------------------------- + template + std::future enqueue(F&& f) + { + auto taskPtr = std::make_shared>(std::forward(f)); + + std::future res = taskPtr->get_future(); + { + std::unique_lock lock(m_QueueMutex); + if (m_Stopped) { + throw std::runtime_error("enqueue on stopped ThreadPool"); + } + m_Tasks.emplace([taskPtr]() { (*taskPtr)(); }); + } + m_Condition.notify_one(); // Notify one worker thread that there is a new task + + return res; + } + + + private: + std::vector m_Workers; + std::queue> m_Tasks; + + // Synchronization primitives + std::mutex m_QueueMutex; + std::condition_variable m_Condition; + + // Stop flag to signal thread termination + bool m_Stopped = false; + }; + +} + +PSAPI_NAMESPACE_END \ No newline at end of file diff --git a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h index 37ee2831..38856079 100644 --- a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h +++ b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h @@ -421,7 +421,9 @@ struct ImageLayer : public Layer /// \param doCopy whether to extract the image data by copying the data. If this is false the channel will no longer hold any image data! std::unordered_map, Enum::ChannelIDInfoHasher> getImageData(bool doCopy = true) { + PROFILE_FUNCTION(); std::unordered_map, Enum::ChannelIDInfoHasher> imgData; + if (Layer::m_LayerMask.has_value()) { Enum::ChannelIDInfo maskInfo; @@ -430,21 +432,36 @@ struct ImageLayer : public Layer imgData[maskInfo] = Layer::getMaskData(doCopy); } + // Preallocate the data in parallel for some slight speedups + std::mutex imgDataMutex; + std::for_each(std::execution::par, m_ImageData.begin(), m_ImageData.end(), + [&](auto& pair) { + auto& [key, value] = pair; + auto vec = std::vector(value->m_OrigByteSize / sizeof(T)); + { + std::lock_guard lock(imgDataMutex); + imgData[key] = std::move(vec); + } + }); + + if (doCopy) { for (auto& [key, value] : m_ImageData) { - imgData[key] = std::move(value->template getData()); + // Get the data using our preallocated buffer + value->template getData(std::span(imgData[key])); } } else { for (auto& [key, value] : m_ImageData) { - imgData[key] = std::move(value->template extractData()); + // Get the data using our preallocated buffer + value->template extractData(std::span(imgData[key])); } } - return imgData; + return std::move(imgData); } /// Change the compression codec of all the image channels diff --git a/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.cpp b/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.cpp index ee3a5196..46b1731b 100644 --- a/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.cpp +++ b/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.cpp @@ -879,7 +879,7 @@ uint64_t ChannelImageData::estimateSize(const FileHeader& header, const uint16_t // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template -std::vector> ChannelImageData::compressData(const FileHeader& header, std::vector& lrChannelInfo, std::vector& lrCompression) +std::vector> ChannelImageData::compressData(const FileHeader& header, std::vector& lrChannelInfo, std::vector& lrCompression, size_t numThreads) { PROFILE_FUNCTION(); @@ -897,7 +897,7 @@ std::vector> ChannelImageData::compressData(const FileHeade std::vector buffer; libdeflate_compressor* compressor = libdeflate_alloc_compressor(ZIP_COMPRESSION_LVL); { - PROFILE_SCOPE("Compression Allocate buffer"); + PROFILE_SCOPE("Allocate compression buffer"); size_t maxWidth = 0; size_t maxHeight = 0; for (const auto& channel : m_ImageData) @@ -933,6 +933,23 @@ std::vector> ChannelImageData::compressData(const FileHeade } } + // Allocate a buffer we can use as scratch for the channel extraction that way we dont have to regenerate a buffer for each iteration. + // If we ever change back for doing the compression per-channel in parallel we have to get rid of this again + size_t maxSize = 0; + for (const auto& channel : m_ImageData) + { + size_t size = static_cast(channel->getWidth()) * channel->getHeight(); + if (maxSize < size) + { + maxSize = size; + } + } + std::vector channelDataBuffer; + { + PROFILE_SCOPE("Allocate channel buffer"); + channelDataBuffer = std::vector(maxSize); + } + for (int i = 0; i < m_ImageData.size(); ++i) { // Take ownership of and invalidate the current channel index @@ -957,9 +974,12 @@ std::vector> ChannelImageData::compressData(const FileHeade compressionMode = Enum::Compression::ZipPrediction; } + // Construct a span from our buffer that is exactly sized to make the CompressData calls behave correctly. The wh + std::span channelDataSpan = std::span(channelDataBuffer.begin(), channelDataBuffer.begin() + static_cast(width) * height); + // Compress the image data into a binary array and store it in our compressedData vec - std::vector imgData = imageChannelPtr->getData(); - compressedData.push_back(CompressData(imgData, buffer, compressor, compressionMode, header, width, height)); + imageChannelPtr->getData(channelDataSpan, numThreads); + compressedData.push_back(CompressData(channelDataSpan, buffer, compressor, compressionMode, header, width, height)); // Store our additional data. The size of the channel must include the 2 bytes for the compression marker LayerRecords::ChannelInformation channelInfo{.m_ChannelID = channelIdx, .m_Size = compressedData[i].size() + 2u }; @@ -1306,17 +1326,22 @@ void LayerInfo::write(File& document, const FileHeader& header, ProgressCallback callback.setTask("Compressing Layer: " + std::string(m_LayerRecords[index].m_LayerName.getString())); std::vector lrChannelInfo; std::vector lrCompression; + + // If we have some additional threads to spare we pass them into compression as some internal functions can make use of this + size_t threadCount = std::thread::hardware_concurrency() / m_ChannelImageData.size(); + threadCount = threadCount < 1 ? 1 : threadCount; + if (header.m_Depth == Enum::BitDepth::BD_8) { - compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression); + compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression, threadCount); } else if (header.m_Depth == Enum::BitDepth::BD_16) { - compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression); + compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression, threadCount); } else if (header.m_Depth == Enum::BitDepth::BD_32) { - compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression); + compressedData[index] = channel.compressData(header, lrChannelInfo, lrCompression, threadCount); } else { diff --git a/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.h b/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.h index 6e433f81..59569fe8 100644 --- a/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.h +++ b/PhotoshopAPI/src/PhotoshopFile/LayerAndMaskInformation.h @@ -283,7 +283,7 @@ struct ChannelImageData : public FileSection /// This function must be called before writing the data for the LayerRecord as it reveals the size of the data /// required to write them. We fill out the lrChannelInfo and lrCompression vector as it goes. template - std::vector> compressData(const FileHeader& header, std::vector& lrChannelInfo, std::vector& lrCompression); + std::vector> compressData(const FileHeader& header, std::vector& lrChannelInfo, std::vector& lrCompression, size_t numThreads); /// Read a single layer instance from a pre-allocated bytestream void read(ByteStream& stream, const FileHeader& header, const uint64_t offset, const LayerRecord& layerRecord); From a04db82dd5f1f392fc3f8515d83004139a3d00d9 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:02:12 +0200 Subject: [PATCH 03/11] Modify code to accomodate performance changes --- .../src/Core/Compression/Compress_RLE.h | 12 +++---- .../src/Core/Compression/Compress_ZIP.h | 10 +++--- .../src/Core/Compression/Compression.h | 4 +-- .../src/Core/Endian/EndianByteSwapArr.h | 6 ++-- PhotoshopBenchmark/src/main.cpp | 2 -- .../TestCompression/TestRLECompression.cpp | 4 +-- .../src/TestEndianConversion/TestEndian.cpp | 32 +++++++++---------- .../TestPredictionEncodeRoundtrip.cpp | 14 ++++---- 8 files changed, 41 insertions(+), 43 deletions(-) diff --git a/PhotoshopAPI/src/Core/Compression/Compress_RLE.h b/PhotoshopAPI/src/Core/Compression/Compress_RLE.h index 3c8ee9a2..af03d671 100644 --- a/PhotoshopAPI/src/Core/Compression/Compress_RLE.h +++ b/PhotoshopAPI/src/Core/Compression/Compress_RLE.h @@ -296,7 +296,7 @@ namespace RLE_Impl // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template -std::vector CompressRLE(std::vector& uncompressedData, std::span buffer, const FileHeader& header, const uint32_t width, const uint32_t height) +std::vector CompressRLE(std::span uncompressedData, std::span buffer, const FileHeader& header, const uint32_t width, const uint32_t height) { PROFILE_FUNCTION(); endianEncodeBEArray(uncompressedData); @@ -347,7 +347,7 @@ std::vector CompressRLE(std::vector& uncompressedData, std::span(scanlineSizes)); std::memcpy(compressedData.data(), reinterpret_cast(scanlineSizes.data()), height * sizeof(uint16_t)); } else @@ -370,7 +370,7 @@ std::vector CompressRLE(std::vector& uncompressedData, std::span(scanlineSizes)); std::memcpy(compressedData.data(), reinterpret_cast(scanlineSizes.data()), height * sizeof(uint32_t)); } @@ -387,7 +387,7 @@ template std::vector CompressRLE(std::vector& uncompressedData, const FileHeader& header, const uint32_t width, const uint32_t height) { PROFILE_FUNCTION(); - endianEncodeBEArray(uncompressedData); + endianEncodeBEArray(std::span(uncompressedData)); std::vector> uncompressedDataViews; for (int i = 0; i < height; ++i) @@ -443,7 +443,7 @@ template std::vector CompressRLEImageDataPsd(std::vector& uncompressedData, const FileHeader& header, const uint32_t width, const uint32_t height, std::vector& scanlineSizes) { PROFILE_FUNCTION(); - endianEncodeBEArray(uncompressedData); + endianEncodeBEArray(std::span(uncompressedData)); std::vector> uncompressedDataViews; for (int i = 0; i < height; ++i) @@ -483,7 +483,7 @@ template std::vector CompressRLEImageDataPsb(std::vector& uncompressedData, const FileHeader& header, const uint32_t width, const uint32_t height, std::vector& scanlineSizes) { PROFILE_FUNCTION(); - endianEncodeBEArray(uncompressedData); + endianEncodeBEArray(std::span(uncompressedData)); std::vector> uncompressedDataViews; for (int i = 0; i < height; ++i) diff --git a/PhotoshopAPI/src/Core/Compression/Compress_ZIP.h b/PhotoshopAPI/src/Core/Compression/Compress_ZIP.h index 3eb2d788..4825dc02 100644 --- a/PhotoshopAPI/src/Core/Compression/Compress_ZIP.h +++ b/PhotoshopAPI/src/Core/Compression/Compress_ZIP.h @@ -37,7 +37,7 @@ namespace ZIP_Impl // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template - void PredictionEncode(std::vector& data, std::span buffer, const uint32_t width, const uint32_t height) + void PredictionEncode(std::span data, std::span buffer, const uint32_t width, const uint32_t height) { if (data.size() > buffer.size() * sizeof(T)) PSAPI_LOG_ERROR("PredictionEncode", "Buffer size does not match data size, expected at least %zu bytes but got %zu instead", data.size() * sizeof(T), buffer.size()); @@ -66,7 +66,7 @@ namespace ZIP_Impl // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template <> - inline void PredictionEncode(std::vector& data, std::span buffer, const uint32_t width, const uint32_t height) + inline void PredictionEncode(std::span data, std::span buffer, const uint32_t width, const uint32_t height) { if (data.size() > buffer.size() * sizeof(float32_t)) PSAPI_LOG_ERROR("PredictionEncode", "Buffer size does not match data size, expected at least %zu bytes but got %zu instead", data.size() * sizeof(float32_t), buffer.size()); @@ -118,7 +118,7 @@ namespace ZIP_Impl // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template - std::vector Compress(const std::vector& uncompressedData, std::span buffer, libdeflate_compressor* compressor) + std::vector Compress(const std::span uncompressedData, std::span buffer, libdeflate_compressor* compressor) { PROFILE_FUNCTION(); std::vector compressedData; @@ -183,7 +183,7 @@ namespace ZIP_Impl // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template -std::vector CompressZIP(std::vector& uncompressedIn, std::span buffer, libdeflate_compressor* compressor) +std::vector CompressZIP(std::span uncompressedIn, std::span buffer, libdeflate_compressor* compressor) { PROFILE_FUNCTION(); // Convert uncompressed data to native endianness in-place @@ -225,7 +225,7 @@ std::vector CompressZIP(std::vector& uncompressedIn) // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template -std::vector CompressZIPPrediction(std::vector& uncompressedIn, std::span buffer, libdeflate_compressor* compressor, const uint32_t width, const uint32_t height) +std::vector CompressZIPPrediction(std::span uncompressedIn, std::span buffer, libdeflate_compressor* compressor, const uint32_t width, const uint32_t height) { PROFILE_FUNCTION(); diff --git a/PhotoshopAPI/src/Core/Compression/Compression.h b/PhotoshopAPI/src/Core/Compression/Compression.h index 43c85c44..3011bcc8 100644 --- a/PhotoshopAPI/src/Core/Compression/Compression.h +++ b/PhotoshopAPI/src/Core/Compression/Compression.h @@ -60,7 +60,7 @@ inline void DecompressData(ByteStream& stream, std::span buffer, uint64_t off // RLE compression will encode the scanline sizes at the start of the data as well. This would equals to // 2/4 * height bytes of additional data (2 bytes for PSD and 4 for PSB) template -inline std::vector CompressData(std::vector& uncompressedIn, std::span buffer, libdeflate_compressor* compressor, const Enum::Compression& compression, const FileHeader& header, const uint32_t width, const uint32_t height) +inline std::vector CompressData(std::span uncompressedIn, std::span buffer, libdeflate_compressor* compressor, const Enum::Compression& compression, const FileHeader& header, const uint32_t width, const uint32_t height) { if (compression == Enum::Compression::Raw) { @@ -96,7 +96,7 @@ inline std::vector CompressData(std::vector& uncompressedIn, const E { if (compression == Enum::Compression::Raw) { - endianEncodeBEArray(uncompressedIn); + endianEncodeBEArray(std::span(uncompressedIn)); std::vector data(uncompressedIn.size() * sizeof(T)); std::memcpy(reinterpret_cast(data.data()), reinterpret_cast(uncompressedIn.data()), data.size()); return data; diff --git a/PhotoshopAPI/src/Core/Endian/EndianByteSwapArr.h b/PhotoshopAPI/src/Core/Endian/EndianByteSwapArr.h index e2236cec..377137f6 100644 --- a/PhotoshopAPI/src/Core/Endian/EndianByteSwapArr.h +++ b/PhotoshopAPI/src/Core/Endian/EndianByteSwapArr.h @@ -306,7 +306,7 @@ inline void endianDecodeBEArray(std::span data) // --------------------------------------------------------------------------------------------------------------------- #ifdef __AVX2__ template - void endianEncodeBEArray(std::vector& data) + void endianEncodeBEArray(std::span data) { PROFILE_FUNCTION(); // We want to split up the vector into blocks that can easily fit into a L1 cache @@ -361,7 +361,7 @@ inline void endianDecodeBEArray(std::span data) } #else template - void endianEncodeBEArray(std::vector& data) + void endianEncodeBEArray(std::span data) { PROFILE_FUNCTION(); for (uint64_t i = 0; i < data.size(); ++i) @@ -375,7 +375,7 @@ inline void endianDecodeBEArray(std::span data) // --------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------- template <> -inline void endianEncodeBEArray(std::vector& data) +inline void endianEncodeBEArray(std::span data) { } diff --git a/PhotoshopBenchmark/src/main.cpp b/PhotoshopBenchmark/src/main.cpp index 25e2c68d..4dd2570f 100644 --- a/PhotoshopBenchmark/src/main.cpp +++ b/PhotoshopBenchmark/src/main.cpp @@ -67,10 +67,8 @@ void readFileExtractData(const int repeats, const std::filesystem::path& readPat if (auto imageLayer = dynamic_pointer_cast>(layer)) { auto data = imageLayer->getImageData(); - std::cout << data.size(); } } - std::cout << std::endl; } Instrumentor::Get().EndSession(); } diff --git a/PhotoshopTest/src/TestCompression/TestRLECompression.cpp b/PhotoshopTest/src/TestCompression/TestRLECompression.cpp index b8d2b30f..bc134e40 100644 --- a/PhotoshopTest/src/TestCompression/TestRLECompression.cpp +++ b/PhotoshopTest/src/TestCompression/TestRLECompression.cpp @@ -134,7 +134,7 @@ TEST_CASE("Check RLE MaxCompressedSize") // Explicitly make the buffer larger than uncompressed data could ever be std::vector buffer(data.size() * 2); - auto resized_buffer = NAMESPACE_PSAPI::CompressRLE(data, buffer, header, width, height); + auto resized_buffer = NAMESPACE_PSAPI::CompressRLE(std::span(data), buffer, header, width, height); CHECK(expectedSize == resized_buffer.size()); } SUBCASE("PSB") @@ -154,7 +154,7 @@ TEST_CASE("Check RLE MaxCompressedSize") // Explicitly make the buffer larger than uncompressed data could ever be std::vector buffer(data.size() * 2); - auto resized_buffer = NAMESPACE_PSAPI::CompressRLE(data, buffer, header, width, height); + auto resized_buffer = NAMESPACE_PSAPI::CompressRLE(std::span(data), buffer, header, width, height); CHECK(expectedSize == resized_buffer.size()); } } \ No newline at end of file diff --git a/PhotoshopTest/src/TestEndianConversion/TestEndian.cpp b/PhotoshopTest/src/TestEndianConversion/TestEndian.cpp index c52f2590..801b9f23 100644 --- a/PhotoshopTest/src/TestEndianConversion/TestEndian.cpp +++ b/PhotoshopTest/src/TestEndianConversion/TestEndian.cpp @@ -17,8 +17,8 @@ TEST_CASE("Endian Roundtripping 16-bit array") std::vector channel(width * height, 32768u); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -35,8 +35,8 @@ TEST_CASE("Endian Roundtripping 32-bit array") std::vector channel(width * height, 1.0f); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -53,8 +53,8 @@ TEST_CASE("Endian Roundtripping 16-bit array large") std::vector channel(width * height, 32768u); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -71,8 +71,8 @@ TEST_CASE("Endian Roundtripping 32-bit array large") std::vector channel(width * height, 1.0f); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -89,8 +89,8 @@ TEST_CASE("Endian Roundtripping 16-bit array uneven") std::vector channel(width * height, 32768u); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -107,8 +107,8 @@ TEST_CASE("Endian Roundtripping 32-bit array uneven") std::vector channel(width * height, 1.0f); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -125,8 +125,8 @@ TEST_CASE("Endian Roundtripping 16-bit array large uneven") std::vector channel(width * height, 32768u); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } @@ -143,8 +143,8 @@ TEST_CASE("Endian Roundtripping 32-bit array large uneven") std::vector channel(width * height, 1.0f); std::vector dataExpected = channel; // We construct a copy here as EndianEncode will invalidate the data - NAMESPACE_PSAPI::endianEncodeBEArray(channel); - NAMESPACE_PSAPI::endianDecodeBEArray(channel); + NAMESPACE_PSAPI::endianEncodeBEArray(std::span(channel)); + NAMESPACE_PSAPI::endianDecodeBEArray(std::span(channel)); CHECK(dataExpected == channel); } diff --git a/PhotoshopTest/src/TestPredictionEncode/TestPredictionEncodeRoundtrip.cpp b/PhotoshopTest/src/TestPredictionEncode/TestPredictionEncodeRoundtrip.cpp index f5fb61d4..8940029f 100644 --- a/PhotoshopTest/src/TestPredictionEncode/TestPredictionEncodeRoundtrip.cpp +++ b/PhotoshopTest/src/TestPredictionEncode/TestPredictionEncodeRoundtrip.cpp @@ -21,7 +21,7 @@ TEST_CASE("Prediction Roundtrip Flat Channel 8-bit") std::vector buffer(width * height * sizeof(uint8_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK(channel == dataExpected); @@ -39,7 +39,7 @@ TEST_CASE("Prediction Roundtrip Large Channel 8-bit") std::vector buffer(width * height * sizeof(uint8_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK(channel == dataExpected); @@ -57,7 +57,7 @@ TEST_CASE("Prediction Roundtrip Flat Channel 16-bit") std::vector buffer(width * height * sizeof(uint16_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK(channel == dataExpected); @@ -75,7 +75,7 @@ TEST_CASE("Prediction Roundtrip Large Channel 16-bit") std::vector buffer(width * height * sizeof(uint16_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK(channel == dataExpected); @@ -93,7 +93,7 @@ TEST_CASE("Prediction Roundtrip Flat Channel 32-bit") std::vector buffer(width * height * sizeof(float32_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK_VEC_VERBOSE(channel, dataExpected); @@ -111,7 +111,7 @@ TEST_CASE("Prediction Roundtrip Uneven Channel 32-bit") std::vector buffer(width * height * sizeof(float32_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK_VEC_VERBOSE(channel, dataExpected); @@ -129,7 +129,7 @@ TEST_CASE("Prediction Roundtrip Large Channel 32-bit") std::vector buffer(width * height * sizeof(float32_t), 0u); std::vector dataExpected = channel; - NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(channel, buffer, width, height); + NAMESPACE_PSAPI::ZIP_Impl::PredictionEncode(std::span(channel), buffer, width, height); NAMESPACE_PSAPI::ZIP_Impl::RemovePredictionEncoding(channel, width, height); CHECK_VEC_VERBOSE(channel, dataExpected); From 472b1c75e1f3883237aaf14db82b644cd5e62990 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:32:14 +0200 Subject: [PATCH 04/11] Update benchmark util to allow for benchmarking without taking into account e.g. time taken to dealloc temporary data --- PhotoshopBenchmark/src/Profiler.h | 37 +++++++++++++++++++++++++++++-- PhotoshopBenchmark/src/main.cpp | 2 ++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/PhotoshopBenchmark/src/Profiler.h b/PhotoshopBenchmark/src/Profiler.h index a97de335..d23ae6e7 100644 --- a/PhotoshopBenchmark/src/Profiler.h +++ b/PhotoshopBenchmark/src/Profiler.h @@ -18,19 +18,52 @@ struct Profiler m_BenchName = benchName; } + + /// Register an individual time point, if this is called at least once we use this way of measuring instead of the ctor dtor one + inline void startTimePoint() + { + m_StartPoints.push_back(std::chrono::high_resolution_clock::now()); + + } + + /// End a given timePoint + inline void endTimePoint() + { + m_EndPoints.push_back(std::chrono::high_resolution_clock::now()); + } + inline ~Profiler() { m_End = std::chrono::high_resolution_clock::now(); + std::chrono::milliseconds totalTime{}; + + if (m_StartPoints.size() == m_EndPoints.size() && m_StartPoints.size() > 0) + { + for (size_t i = 0; i < m_StartPoints.size(); ++i) + { + totalTime += std::chrono::duration_cast(m_EndPoints[i] - m_StartPoints[i]); + } + PSAPI_LOG("Benchmark", "Bench %s finished execution in %u ms with a wall time of %u ms", m_BenchName.c_str(), totalTime.count(), + std::chrono::duration_cast(m_End - m_Start).count()); + } + else + { + totalTime = std::chrono::duration_cast(m_End - m_Start); + PSAPI_LOG("Benchmark", "Bench %s finished execution in %u ms", m_BenchName.c_str(), totalTime.count()); + } std::ofstream outfile; outfile.open(m_Path, std::ios_base::app); - outfile << m_BenchName << ": " << std::chrono::duration_cast(m_End - m_Start).count() << "ms\n"; - PSAPI_LOG("Benchmark", "Bench %s finished execution in %u ms", m_BenchName.c_str(), std::chrono::duration_cast(m_End - m_Start).count()); + outfile << m_BenchName << ": " << totalTime.count() << "ms\n"; } private: std::chrono::time_point m_Start; std::chrono::time_point m_End; + + std::vector> m_StartPoints; + std::vector> m_EndPoints; + std::filesystem::path m_Path; std::string m_BenchName; }; \ No newline at end of file diff --git a/PhotoshopBenchmark/src/main.cpp b/PhotoshopBenchmark/src/main.cpp index 4dd2570f..5535c818 100644 --- a/PhotoshopBenchmark/src/main.cpp +++ b/PhotoshopBenchmark/src/main.cpp @@ -66,7 +66,9 @@ void readFileExtractData(const int repeats, const std::filesystem::path& readPat { if (auto imageLayer = dynamic_pointer_cast>(layer)) { + extractProfiler.startTimePoint(); auto data = imageLayer->getImageData(); + extractProfiler.endTimePoint(); } } } From d134e13d41495577065faa2908976dfce1b8d52e Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 20:58:39 +0200 Subject: [PATCH 05/11] bump chunk size back up to 8MB for better read/write performance at the slight cost of 8-bit extraction speeds --- PhotoshopAPI/src/Core/Struct/ImageChannel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhotoshopAPI/src/Core/Struct/ImageChannel.h b/PhotoshopAPI/src/Core/Struct/ImageChannel.h index 04c6de0c..11175059 100644 --- a/PhotoshopAPI/src/Core/Struct/ImageChannel.h +++ b/PhotoshopAPI/src/Core/Struct/ImageChannel.h @@ -39,8 +39,8 @@ PSAPI_NAMESPACE_BEGIN struct ImageChannel { /// The size of each sub-chunk in the super-chunk. For more information about what a chunk and super-chunk is - /// please refer to the c-blosc2 documentation. Defaults to 2MB - static const uint64_t m_ChunkSize = 1024 * 1024 * 2; + /// please refer to the c-blosc2 documentation. Defaults to 8MB + static const uint64_t m_ChunkSize = 1024 * 1024 * 8; /// This does not indicate the compression method of the channel in memory /// but rather the compression method it writes the PhotoshopFile with Enum::Compression m_Compression = Enum::Compression::Raw; From d087e0018fc18050c77a92506297e0d10660ffe9 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:28:23 +0200 Subject: [PATCH 06/11] Update documentation images --- .../Ryzen_9_5950x/16-bit_graphs.png | Bin 26018 -> 25858 bytes .../Ryzen_9_5950x/32-bit_graphs.png | Bin 26514 -> 26562 bytes .../benchmarks/Ryzen_9_5950x/8-bit_graphs.png | Bin 41889 -> 41550 bytes ...ive_Data_(16-bit)_1.97GB_combined_plot.png | Bin 22701 -> 22507 bytes ...ive_Data_(32-bit)_3.65GB_combined_plot.png | Bin 23310 -> 23335 bytes ...tive_Data_(8-bit)_1.27GB_combined_plot.png | Bin 20337 -> 20417 bytes ...ive_Data_Zip_(8-bit)_1.27GB_psapi_plot.png | Bin 18402 -> 22155 bytes ...sted_Layers_(8-bit)_.5GB_combined_plot.png | Bin 22383 -> 22576 bytes ...dai_Sample_(8-bit)_.75GB_combined_plot.png | Bin 21276 -> 21377 bytes ...ai_Sample_Zip_(8-bit)_.75GB_psapi_plot.png | Bin 20785 -> 20629 bytes .../benchmarkStatisticsPSAPI.txt | 84 +++++++++--------- 11 files changed, 42 insertions(+), 42 deletions(-) diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/16-bit_graphs.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/16-bit_graphs.png index 91294158bb72e1c0d43a059d1ac260bd854cc6eb..993703dcf9c1f0d20bc7f8d9760d408869d7f2a6 100644 GIT binary patch literal 25858 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

PYh&xZCUT34?HCD;5*^^b(RdXue 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 literal 26514 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 diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/8-bit_graphs.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/8-bit_graphs.png index 0e9decc651d09a1cb20306abecd27d4c1130b7f5..83b60f981dceffdd2e665dd96a76bd25da2a18cd 100644 GIT binary patch literal 41550 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 literal 41889 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 B$_@Yk diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Automotive_Data_(16-bit)_1.97GB_combined_plot.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Automotive_Data_(16-bit)_1.97GB_combined_plot.png index 630975f0b48d621b1868a76e9ddbf35221a25033..3e8fee1c1249b99c5b429bf77d494d24b1f0a4f5 100644 GIT binary patch literal 22507 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 QSEW!-Dx63@e(~D>0;kcXlmGw# literal 22701 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 diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Automotive_Data_(32-bit)_3.65GB_combined_plot.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Automotive_Data_(32-bit)_3.65GB_combined_plot.png index 920d61b74a0a30f9c9d707f5a2cde8134c3d2bb8..ab83a5d97772bcb4c08204360bdcce8b084f66a1 100644 GIT binary patch literal 23335 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 V>;1u<_*9DQImNSyXRh7;KL9ytFcem#Xk*(81L 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

x; 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 Uf66xDX%xu|vgeb|Ub*$(0OHw`IRF3v diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Deep_Nested_Layers_(8-bit)_.5GB_combined_plot.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Deep_Nested_Layers_(8-bit)_.5GB_combined_plot.png index 016edd382064710cd5a8c93942e68b68c0796b52..1091e3857411b178ad4074ff66e184a59dd91000 100644 GIT binary patch literal 22576 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 NwfzT`(iBZE{XZIU0r3C; literal 22383 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

J`XYt9Utz}6s; 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 diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Glacius_Hyundai_Sample_(8-bit)_.75GB_combined_plot.png b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/Glacius_Hyundai_Sample_(8-bit)_.75GB_combined_plot.png index 2c019601aedb2b3d3b36b8b30270f0460ec241b4..dbbc10bce8556fdcc91ae7416fba4ffaabb5fc5a 100644 GIT binary patch literal 21377 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 literal 21276 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�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ⅇH&$QF3`997q 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 diff --git a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/benchmarkStatisticsPSAPI.txt b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/benchmarkStatisticsPSAPI.txt index f5ae981b..22fbf092 100644 --- a/docs/doxygen/images/benchmarks/Ryzen_9_5950x/benchmarkStatisticsPSAPI.txt +++ b/docs/doxygen/images/benchmarks/Ryzen_9_5950x/benchmarkStatisticsPSAPI.txt @@ -1,42 +1,42 @@ -readAutomotive Data (8-bit) ~1.27GB: 1028ms -writeAutomotive Data (8-bit) ~1.27GB: 1937ms -readAutomotive Data (8-bit) ~1.27GB: 1015ms -writeAutomotive Data (8-bit) ~1.27GB: 1997ms -readAutomotive Data (8-bit) ~1.27GB: 1065ms -writeAutomotive Data (8-bit) ~1.27GB: 2059ms -readAutomotive Data Zip (8-bit) ~1.27GB: 1038ms -writeAutomotive Data Zip (8-bit) ~1.27GB: 2229ms -readAutomotive Data Zip (8-bit) ~1.27GB: 971ms -writeAutomotive Data Zip (8-bit) ~1.27GB: 2259ms -readAutomotive Data Zip (8-bit) ~1.27GB: 1045ms -writeAutomotive Data Zip (8-bit) ~1.27GB: 2344ms -readAutomotive Data (16-bit) ~1.97GB: 3808ms -writeAutomotive Data (16-bit) ~1.97GB: 6215ms -readAutomotive Data (16-bit) ~1.97GB: 3792ms -writeAutomotive Data (16-bit) ~1.97GB: 6241ms -readAutomotive Data (16-bit) ~1.97GB: 3773ms -writeAutomotive Data (16-bit) ~1.97GB: 6232ms -readAutomotive Data (32-bit) ~3.65GB: 13569ms -writeAutomotive Data (32-bit) ~3.65GB: 14223ms -readAutomotive Data (32-bit) ~3.65GB: 13493ms -writeAutomotive Data (32-bit) ~3.65GB: 14500ms -readAutomotive Data (32-bit) ~3.65GB: 13566ms -writeAutomotive Data (32-bit) ~3.65GB: 14719ms -readGlacius Hyundai Sample (8-bit) ~.75GB: 503ms -writeGlacius Hyundai Sample (8-bit) ~.75GB: 867ms -readGlacius Hyundai Sample (8-bit) ~.75GB: 509ms -writeGlacius Hyundai Sample (8-bit) ~.75GB: 1030ms -readGlacius Hyundai Sample (8-bit) ~.75GB: 595ms -writeGlacius Hyundai Sample (8-bit) ~.75GB: 1012ms -readDeep Nested Layers (8-bit) ~.5GB: 399ms -writeDeep Nested Layers (8-bit) ~.5GB: 754ms -readDeep Nested Layers (8-bit) ~.5GB: 402ms -writeDeep Nested Layers (8-bit) ~.5GB: 676ms -readDeep Nested Layers (8-bit) ~.5GB: 401ms -writeDeep Nested Layers (8-bit) ~.5GB: 689ms -readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 677ms -writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1289ms -readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 756ms -writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1410ms -readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 813ms -writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1415ms +readAutomotive Data (8-bit) ~1.27GB: 1032ms +writeAutomotive Data (8-bit) ~1.27GB: 1790ms +readAutomotive Data (8-bit) ~1.27GB: 1040ms +writeAutomotive Data (8-bit) ~1.27GB: 1811ms +readAutomotive Data (8-bit) ~1.27GB: 1038ms +writeAutomotive Data (8-bit) ~1.27GB: 1788ms +readAutomotive Data Zip (8-bit) ~1.27GB: 1027ms +writeAutomotive Data Zip (8-bit) ~1.27GB: 2088ms +readAutomotive Data Zip (8-bit) ~1.27GB: 1055ms +writeAutomotive Data Zip (8-bit) ~1.27GB: 2120ms +readAutomotive Data Zip (8-bit) ~1.27GB: 1083ms +writeAutomotive Data Zip (8-bit) ~1.27GB: 2182ms +readAutomotive Data (16-bit) ~1.97GB: 3785ms +writeAutomotive Data (16-bit) ~1.97GB: 5572ms +readAutomotive Data (16-bit) ~1.97GB: 3747ms +writeAutomotive Data (16-bit) ~1.97GB: 5555ms +readAutomotive Data (16-bit) ~1.97GB: 3711ms +writeAutomotive Data (16-bit) ~1.97GB: 5811ms +readAutomotive Data (32-bit) ~3.65GB: 13405ms +writeAutomotive Data (32-bit) ~3.65GB: 13147ms +readAutomotive Data (32-bit) ~3.65GB: 13364ms +writeAutomotive Data (32-bit) ~3.65GB: 12957ms +readAutomotive Data (32-bit) ~3.65GB: 13414ms +writeAutomotive Data (32-bit) ~3.65GB: 13016ms +readGlacius Hyundai Sample (8-bit) ~.75GB: 501ms +writeGlacius Hyundai Sample (8-bit) ~.75GB: 849ms +readGlacius Hyundai Sample (8-bit) ~.75GB: 567ms +writeGlacius Hyundai Sample (8-bit) ~.75GB: 864ms +readGlacius Hyundai Sample (8-bit) ~.75GB: 514ms +writeGlacius Hyundai Sample (8-bit) ~.75GB: 907ms +readDeep Nested Layers (8-bit) ~.5GB: 384ms +writeDeep Nested Layers (8-bit) ~.5GB: 540ms +readDeep Nested Layers (8-bit) ~.5GB: 451ms +writeDeep Nested Layers (8-bit) ~.5GB: 561ms +readDeep Nested Layers (8-bit) ~.5GB: 441ms +writeDeep Nested Layers (8-bit) ~.5GB: 561ms +readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 559ms +writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1226ms +readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 502ms +writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1259ms +readGlacius Hyundai Sample Zip (8-bit) ~.75GB: 492ms +writeGlacius Hyundai Sample Zip (8-bit) ~.75GB: 1202ms From 52a1877c73add046fd039f39eaea01138ab41c9a Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:43:43 +0200 Subject: [PATCH 07/11] parallelize channel extraction further for 2.5-5x gains --- .../src/LayeredFile/LayerTypes/ImageLayer.h | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h index 38856079..3f183288 100644 --- a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h +++ b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h @@ -444,24 +444,32 @@ struct ImageLayer : public Layer } }); + // We want to let the imagedata decode in as many threads as we have left over given our channels. + // This is because images that are smaller than the blosc2 block size or images that dont have enough + // blocks to parallelize across with all of our threads. + const size_t numThreads = std::thread::hardware_concurrency() / m_ImageData.size(); if (doCopy) { - for (auto& [key, value] : m_ImageData) - { - // Get the data using our preallocated buffer - value->template getData(std::span(imgData[key])); - } + std::for_each(std::execution::par, m_ImageData.begin(), m_ImageData.end(), + [&](auto& pair) + { + auto& [key, value] = pair; + // Get the data using the preallocated buffer + value->template getData(std::span(imgData[key]), numThreads); + }); } else { - for (auto& [key, value] : m_ImageData) - { - // Get the data using our preallocated buffer - value->template extractData(std::span(imgData[key])); - } + std::for_each(std::execution::par, m_ImageData.begin(), m_ImageData.end(), + [&](auto& pair) + { + auto& [key, value] = pair; + // Get the data using the preallocated buffer + value->template extractData(std::span(imgData[key]), numThreads); + }); } - return std::move(imgData); + return imgData; } /// Change the compression codec of all the image channels From 7ac9a9aefc159cacf14fefdbe6ba1305cdd1cf3f Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:44:00 +0200 Subject: [PATCH 08/11] fix spelling error in glacius name --- PhotoshopBenchmark/src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PhotoshopBenchmark/src/main.cpp b/PhotoshopBenchmark/src/main.cpp index 5535c818..6ddee53e 100644 --- a/PhotoshopBenchmark/src/main.cpp +++ b/PhotoshopBenchmark/src/main.cpp @@ -125,7 +125,7 @@ int main(int argc, char* argv[]) readFileExtractData(repeats, "documents/read/large_file_8bit.psb", "documents/write/large_file_8bit.psb", "Automotive Data (8-bit) ~1.27GB"); readFileExtractData(repeats, "documents/read/large_file_16bit.psb", "documents/write/large_file_16bit.psb", "Automotive Data (16-bit) ~1.97GB"); readFileExtractData(repeats, "documents/read/large_file_32bit.psb", "documents/write/large_file_32bit.psb", "Automotive Data (32-bit) ~3.65GB"); - readFileExtractData(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreations_8bit.psd", "Glacious Hyundai Sample (8-bit) ~.75GB"); + readFileExtractData(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciusCreations_8bit.psd", "Glacius Hyundai Sample (8-bit) ~.75GB"); readFileExtractData(repeats, "documents/read/deep_nesting_8bit.psb", "documents/write/deep_nesting_8bit.psb", "Deep Nested Layers (8-bit) ~.5GB"); return 0; } @@ -140,10 +140,10 @@ int main(int argc, char* argv[]) readWriteFileChangeCompression(repeats, "documents/read/large_file_8bit.psb", "documents/write/large_fileZip_8bit.psb", "Automotive Data Zip (8-bit) ~1.27GB"); readWriteFile(repeats, "documents/read/large_file_16bit.psb", "documents/write/large_file_16bit.psb", "Automotive Data (16-bit) ~1.97GB"); readWriteFile(repeats, "documents/read/large_file_32bit.psb", "documents/write/large_file_32bit.psb", "Automotive Data (32-bit) ~3.65GB"); - readWriteFile(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreations_8bit.psd", "Glacious Hyundai Sample (8-bit) ~.75GB"); + readWriteFile(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciusCreations_8bit.psd", "Glacius Hyundai Sample (8-bit) ~.75GB"); readWriteFile(repeats, "documents/read/deep_nesting_8bit.psb", "documents/write/deep_nesting_8bit.psb", "Deep Nested Layers (8-bit) ~.5GB"); // Benchmark how changing the compression reduces the file size - readWriteFileChangeCompression(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciousCreationsZip_8bit.psd", "Glacious Hyundai Sample Zip (8-bit) ~.75GB"); + readWriteFileChangeCompression(repeats, "documents/read/HyundaiGenesis_GlaciousCreations_8bit.psd", "documents/write/HyundaiGenesis_GlaciusCreationsZip_8bit.psd", "Glacius Hyundai Sample Zip (8-bit) ~.75GB"); } \ No newline at end of file From 6c15380b6035abdcd95a77ba86b2298414cf0ef3 Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:23:55 +0200 Subject: [PATCH 09/11] make logging thread-safe --- PhotoshopAPI/src/Util/Logger.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PhotoshopAPI/src/Util/Logger.h b/PhotoshopAPI/src/Util/Logger.h index 4618981b..2d464e1e 100644 --- a/PhotoshopAPI/src/Util/Logger.h +++ b/PhotoshopAPI/src/Util/Logger.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -93,6 +94,7 @@ class Logger { auto logMessage = createMessage(time, task, buffer); { + std::lock_guard lock(m_LogMutex); if (severity >= m_Severity) { if (severity == Enum::Severity::Error) @@ -113,6 +115,7 @@ class Logger { private: Enum::Severity m_Severity = Enum::Severity::Debug; + std::mutex m_LogMutex; Logger() { } From 2479c33cae4108678f7002f86864dd7cec96c0df Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:24:07 +0200 Subject: [PATCH 10/11] fix deprecated signature --- PhotoshopAPI/src/Core/Struct/ImageChannel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhotoshopAPI/src/Core/Struct/ImageChannel.h b/PhotoshopAPI/src/Core/Struct/ImageChannel.h index 11175059..be46399d 100644 --- a/PhotoshopAPI/src/Core/Struct/ImageChannel.h +++ b/PhotoshopAPI/src/Core/Struct/ImageChannel.h @@ -157,14 +157,14 @@ struct ImageChannel void* ptr = reinterpret_cast(buffer.data()) + nchunk * m_ChunkSize; if (remainingSize > m_ChunkSize) { - futures.emplace_back(pool.enqueue([=]() { + futures.emplace_back(pool.enqueue([=, this]() { blosc2_decompress_ctx(contexts.back(), m_Data->data[nchunk], std::numeric_limits::max(), ptr, m_ChunkSize); })); remainingSize -= m_ChunkSize; } else { - futures.emplace_back(pool.enqueue([=]() { + futures.emplace_back(pool.enqueue([=, this]() { blosc2_decompress_ctx(contexts.back(), m_Data->data[nchunk], std::numeric_limits::max(), ptr, remainingSize); })); remainingSize = 0; From c3aa7dfe155bed5015b26117e2dd580145100d2a Mon Sep 17 00:00:00 2001 From: EmilDohne <86836589+EmilDohne@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:24:18 +0200 Subject: [PATCH 11/11] correctly unwind exception stack from threads --- .../src/LayeredFile/LayerTypes/ImageLayer.h | 58 ++++++++++++++++--- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h index 3f183288..b5e208de 100644 --- a/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h +++ b/PhotoshopAPI/src/LayeredFile/LayerTypes/ImageLayer.h @@ -449,26 +449,70 @@ struct ImageLayer : public Layer // blocks to parallelize across with all of our threads. const size_t numThreads = std::thread::hardware_concurrency() / m_ImageData.size(); + // Construct variables for correct exception stack unwinding + std::atomic exceptionOccurred = false; + std::mutex exceptionMutex; + std::vector exceptionMessages; + if (doCopy) { std::for_each(std::execution::par, m_ImageData.begin(), m_ImageData.end(), [&](auto& pair) { - auto& [key, value] = pair; - // Get the data using the preallocated buffer - value->template getData(std::span(imgData[key]), numThreads); + try + { + auto& [key, value] = pair; + // Get the data using the preallocated buffer + value->template getData(std::span(imgData[key]), numThreads); + } + catch (std::runtime_error& e) + { + exceptionOccurred = true; + std::lock_guard lock(exceptionMutex); + exceptionMessages.push_back(e.what()); + } + catch (...) + { + exceptionOccurred = true; + std::lock_guard lock(exceptionMutex); + exceptionMessages.push_back("Unknown exception caught."); + } }); } else { - std::for_each(std::execution::par, m_ImageData.begin(), m_ImageData.end(), + std::for_each(std::execution::seq, m_ImageData.begin(), m_ImageData.end(), [&](auto& pair) { - auto& [key, value] = pair; - // Get the data using the preallocated buffer - value->template extractData(std::span(imgData[key]), numThreads); + try + { + // Get the data using the preallocated buffer + pair.second->template extractData(std::span(imgData[pair.first]), numThreads); + } + catch (std::runtime_error& e) + { + exceptionOccurred = true; + std::lock_guard lock(exceptionMutex); + exceptionMessages.push_back(e.what()); + } + catch (...) + { + exceptionOccurred = true; + std::lock_guard lock(exceptionMutex); + exceptionMessages.push_back("Unknown exception caught."); + } }); } + + + if (exceptionOccurred) + { + for (const auto& msg : exceptionMessages) + { + PSAPI_LOG_ERROR("ImageLayer", "Exception caught: %s", msg.c_str()); + } + } + return imgData; }