From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/classNLMISC_1_1CFastMem.html | 286 ++++++++++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 docs/doxygen/nel/classNLMISC_1_1CFastMem.html (limited to 'docs/doxygen/nel/classNLMISC_1_1CFastMem.html') diff --git a/docs/doxygen/nel/classNLMISC_1_1CFastMem.html b/docs/doxygen/nel/classNLMISC_1_1CFastMem.html new file mode 100644 index 00000000..e2a1ebc3 --- /dev/null +++ b/docs/doxygen/nel/classNLMISC_1_1CFastMem.html @@ -0,0 +1,286 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

NLMISC::CFastMem Class Reference

Functions for Fast Memory manipulation with Pentium-class processors. +More... +

+#include <fast_mem.h> +

+List of all members. + + + + + + + + + +

Static Public Methods

void precache (const void *src, uint nbytes)
 Fast precaching of memory in L1 cache using SSE or MMX where available (NB: others methods don't do the test) nbytes should not override 4K. More...

void * memcpySSE (void *dst, const void *src, size_t nbytes)
 Fast memcpy using SSE instructions: prefetchnta and movntq. More...

void precacheSSE (const void *src, uint nbytes)
 Fast precaching of memory in L1 cache using MMX/SSE instructions: movq and prefetchnta Result is typically 880 Mo/s (surely slower because of overhead). More...

void precacheMMX (const void *src, uint nbytes)
 Fast precaching of memory in L1 cache using MMX instructions only: movq Result is typically 720 Mo/s (surely slower because of overhead). More...

+


Detailed Description

+Functions for Fast Memory manipulation with Pentium-class processors. +

+From http://www.sgi.com/developers/technology/irix/resources/asc_cpu.html

+Author:
+Lionel Berenguier , Nevrax France
+Date:
+2002
+

+ +

+Definition at line 44 of file fast_mem.h.


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
void * NLMISC::CFastMem::memcpySSE void *   dst,
const void *   src,
size_t   nbytes
[static]
+
+ + + + + +
+   + + +

+Fast memcpy using SSE instructions: prefetchnta and movntq. +

+Can be called only if SSE and MMX is supported NB: Copy per block of 4K through L1 cache Result is typically 420 Mo/s instead of 150 Mo/s. +

+Definition at line 205 of file fast_mem.cpp. +

+References src.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLMISC::CFastMem::precache const void *   src,
uint   nbytes
[static]
+
+ + + + + +
+   + + +

+Fast precaching of memory in L1 cache using SSE or MMX where available (NB: others methods don't do the test) nbytes should not override 4K. +

+ +

+Definition at line 218 of file fast_mem.cpp. +

+References src.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLMISC::CFastMem::precacheMMX const void *   src,
uint   nbytes
[static]
+
+ + + + + +
+   + + +

+Fast precaching of memory in L1 cache using MMX instructions only: movq Result is typically 720 Mo/s (surely slower because of overhead). +

+Hence prefer precacheSSE() when available. nbytes should not override 4K +

+Definition at line 214 of file fast_mem.cpp. +

+References src.

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NLMISC::CFastMem::precacheSSE const void *   src,
uint   nbytes
[static]
+
+ + + + + +
+   + + +

+Fast precaching of memory in L1 cache using MMX/SSE instructions: movq and prefetchnta Result is typically 880 Mo/s (surely slower because of overhead). +

+nbytes should not override 4K +

+Definition at line 210 of file fast_mem.cpp. +

+References src.

+


The documentation for this class was generated from the following files: + + + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1