]> git.sesse.net Git - casparcg/commitdiff
Use hardware concurrency as tbb grain size during memcpy and memset
authorHelge Norberg <helge.norberg@svt.se>
Mon, 30 Nov 2015 20:57:05 +0000 (21:57 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Mon, 30 Nov 2015 20:57:05 +0000 (21:57 +0100)
common/memcpy.h
common/memset.h

index 530f6172b681da5f7f9bab4ce6166f80119885e9..caf403e58b4374eb5002dafd49b9212e92450697 100644 (file)
 
 #include <tbb/parallel_for.h>
 
+#include <boost/thread/thread.hpp>
+
 namespace caspar {
 
 static void fast_memcpy(void* dest, const void* src, std::size_t size)
 {
        tbb::affinity_partitioner partitioner;
-       tbb::parallel_for(tbb::blocked_range<std::size_t>(0, size, size / 128), [&](const tbb::blocked_range<size_t>& range)
+       tbb::parallel_for(tbb::blocked_range<std::size_t>(0, size, size / boost::thread::hardware_concurrency()), [&](const tbb::blocked_range<size_t>& range)
        {
                A_memcpy(
                                reinterpret_cast<std::uint8_t*>(dest) + range.begin(),
index a53b0b2d4e2f019c5c2a073fdd740ed4f08036f7..f3b126f7878f43ab6ce06c564c8c1dc554417eb7 100644 (file)
 
 #include <tbb/parallel_for.h>
 
+#include <boost/thread/thread.hpp>
+
 namespace caspar {
 
 static void fast_memset(void* dest, int c, std::size_t size)
 {
        tbb::affinity_partitioner partitioner;
-       tbb::parallel_for(tbb::blocked_range<std::size_t>(0, size, size / 128), [&](const tbb::blocked_range<size_t>& range)
+       tbb::parallel_for(tbb::blocked_range<std::size_t>(0, size, size / boost::thread::hardware_concurrency()), [&](const tbb::blocked_range<size_t>& range)
        {
                A_memset(
                                reinterpret_cast<std::uint8_t*>(dest) + range.begin(),