<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cpuminer, branch cell-be-optimizations</title>
<subtitle>Cell BE optimized miner for litecoin http://yyz.us/bitcoin/</subtitle>
<id>https://git.amat.us/cpuminer/atom/?h=cell-be-optimizations</id>
<link rel='self' href='https://git.amat.us/cpuminer/atom/?h=cell-be-optimizations'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/'/>
<updated>2013-03-28T03:50:04Z</updated>
<entry>
<title>Force work_restart to be 128-byte aligned.</title>
<updated>2013-03-28T03:50:04Z</updated>
<author>
<name>David Barksdale</name>
<email>amatus.amongus@gmail.com</email>
</author>
<published>2013-03-28T03:50:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=cc439de3a7a7199d8aa5bb7e37c38e07a743f4de'/>
<id>urn:sha1:cc439de3a7a7199d8aa5bb7e37c38e07a743f4de</id>
<content type='text'>
This fixes a bug on my system where mfc_get was failing on
work_restart_pointer because it was not 128-byte aligned.
</content>
</entry>
<entry>
<title>Initial partial conversion to SPU assembly</title>
<updated>2012-02-20T22:03:44Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2012-02-20T22:03:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=3c51c7107674e3fb62734d6fe80405db5484ee5e'/>
<id>urn:sha1:3c51c7107674e3fb62734d6fe80405db5484ee5e</id>
<content type='text'>
Only the first loop is converted. The performance
is increased up to ~5.97 khash/sec per SPE core.

TODO: try to update it to use better data layout and more
      unrolling from shakti's variant.
</content>
</entry>
<entry>
<title>CURLOPT_NOSIGNAL fix (borrowed from pooler's code)</title>
<updated>2012-02-20T21:56:51Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2012-02-20T21:56:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=a62cd79b85c69aea5b980f91d2c563b082b06af0'/>
<id>urn:sha1:a62cd79b85c69aea5b980f91d2c563b082b06af0</id>
<content type='text'>
Prevents the miner from eventually abnormally terminating
due to curl misbehaviour.
</content>
</entry>
<entry>
<title>Fix strict aliasing problems</title>
<updated>2012-01-01T02:04:54Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2012-01-01T02:04:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=b690870238b0b468355ec0d5b83c5b43b00f8aa6'/>
<id>urn:sha1:b690870238b0b468355ec0d5b83c5b43b00f8aa6</id>
<content type='text'>
Currently the cast between uint32_t and uint64_t pointers
breaks strict aliasing rules and needs -fno-strict-aliasing
option as a workaround, otherwise the code gets miscompiled.
But -fno-strict-aliasing can seriously inhibit optimization
possibilities. For example, performance of 1 thread
on Cell PPU (using Altivec instructions):
    CFLAGS="-O3 -mcpu=cell -fno-strict-aliasing" - 1.79 khash/sec
    CFLAGS="-O3 -mcpu=cell -fstrict-aliasing"    - 2.60 khash/sec
</content>
</entry>
<entry>
<title>Use the SHA256 code tweaked by pooler</title>
<updated>2012-01-01T01:27:09Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-31T23:47:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=6d1e5bf3c2300623153479fd43c08a5874dacbbc'/>
<id>urn:sha1:6d1e5bf3c2300623153479fd43c08a5874dacbbc</id>
<content type='text'>
Because the data endiannes has changed (native instead of
little endian) and also SHA256 functions arguments are now
different, this required lots of changes all over the place.

Improves Altivec performance on Cell PPU from ~3.4 khash/s
to ~3.6 khash/s (two threads). Seems to have no effect on
SPU performance though.
</content>
</entry>
<entry>
<title>Set hashes_done variable to 0 in order not to confuse valgrind</title>
<updated>2011-12-31T17:53:05Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-31T17:53:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=4280aca375f60981d70826091f1ece82e7cf56c5'/>
<id>urn:sha1:4280aca375f60981d70826091f1ece82e7cf56c5</id>
<content type='text'>
This variable is set by SPU code, but valgrind can't see it and
complains.
</content>
</entry>
<entry>
<title>Added Cell/BE optimizations</title>
<updated>2011-12-29T04:47:40Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-27T01:51:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=ea4520474ba5a966260fc5652c5248e6eab50d58'/>
<id>urn:sha1:ea4520474ba5a966260fc5652c5248e6eab50d58</id>
<content type='text'>
Linux on PS3 gets a huge boost in litecoin mining performance.
Cell/BE support should be detected and enabled automatically
by autotools.

The miner threads are first allocated to the available SPU
cores (typically 6). The remaining threads are allocated on
PPU. There will be 8 threads total on PS3: 6 SPU threads
and 2 PPU threads.

Each SPU core provides ~5.4 khash/s if compiled with spu-elf-gcc 4.6
The performance may vary for different gcc versions, older ones are
typically slower.
</content>
</entry>
<entry>
<title>Use gcc vector extensions for SIMD scrypt key derivation function</title>
<updated>2011-12-29T04:46:17Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-28T23:38:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=7a9481d266b58bd02a7d8033f359ca344cfd65d6'/>
<id>urn:sha1:7a9481d266b58bd02a7d8033f359ca344cfd65d6</id>
<content type='text'>
The code can be compiled for different architectures from the same
source starting with gcc 4.7. But SSE2/Altivec/SPU targets have
compatibility wrappers, which also allow the use of older versions
of gcc.

Two hashes are processed at the same time, so twice bigger scratch
buffer is needed (~256K vs. ~128K).

Speedup on Cell PPU (32-bit), single thread, 3.2GHz:
    ~0.58 khash/s -&gt; ~1.79 khash/sec
</content>
</entry>
<entry>
<title>SHA256 code moved to a separate header file</title>
<updated>2011-12-29T04:29:30Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-28T21:51:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=a0139edc7e2c3aa8252405ceff8a23a065965716'/>
<id>urn:sha1:a0139edc7e2c3aa8252405ceff8a23a065965716</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix big endian bugs</title>
<updated>2011-12-22T19:35:19Z</updated>
<author>
<name>Siarhei Siamashka</name>
<email>siarhei.siamashka@gmail.com</email>
</author>
<published>2011-12-22T19:31:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/cpuminer/commit/?id=285cc8d4d023ea858116b9e985667b44ef7e69cc'/>
<id>urn:sha1:285cc8d4d023ea858116b9e985667b44ef7e69cc</id>
<content type='text'>
Now it seems to work correctly and provide performance ~0.58 khash/s
per thread on Cell PPU.
</content>
</entry>
</feed>
