Skip to content

Commit

Permalink
v3.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
JayDDee committed Jan 3, 2020
1 parent 241bc26 commit 3572cb5
Show file tree
Hide file tree
Showing 118 changed files with 7,024 additions and 1,569 deletions.
4 changes: 4 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,11 @@ cpuminer_SOURCES = \
algo/echo/echo-hash-4way.c \
algo/echo/aes_ni/hash.c\
algo/gost/sph_gost.c \
algo/groestl/groestl-gate.c \
algo/groestl/groestl512-hash-4way.c \
algo/groestl/sph_groestl.c \
algo/groestl/groestl.c \
algo/groestl/groestl-4way.c \
algo/groestl/myrgr-gate.c \
algo/groestl/myrgr-4way.c \
algo/groestl/myr-groestl.c \
Expand Down Expand Up @@ -188,6 +191,7 @@ cpuminer_SOURCES = \
algo/shavite/sph_shavite.c \
algo/shavite/sph-shavite-aesni.c \
algo/shavite/shavite-hash-2way.c \
algo/shavite/shavite-hash-4way.c \
algo/shavite/shavite.c \
algo/simd/sph_simd.c \
algo/simd/nist.c \
Expand Down
17 changes: 15 additions & 2 deletions RELEASE_NOTES
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ required.
Compile Instructions
--------------------

See INSTALL_LINUX or INSTALL_WINDOWS fror compile instruuctions
See INSTALL_LINUX or INSTALL_WINDOWS for compile instruuctions

Requirements
------------
Expand All @@ -35,13 +35,26 @@ not supported. FreeBSD YMMV.
Change Log
----------

v3.11.0

Fixed x25x AVX512 lane 4 invalid shares.

AVX512 for hex, phi2.

VAES optimzation for Intel Icelake CPUs for most algos recently optimized
with AVX512, source code only.

v3.10.7

AVX512 for x25x, lbry, x13bcd (bcd).

v3.10.6

Added support for SSL stratum: stratum+tcps://

Added job id reporting again, but leaner, suppressed with --quiet.

AVX512 for x21s, x22i, lyra2z, allium
AVX512 for x21s, x22i, lyra2z, allium.

Fixed share overflow warnings mining lbry with Ryzen (SHA).

Expand Down
1 change: 1 addition & 0 deletions algo-gate-api.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ const char* const algo_alias_map[][2] =
{ "argon2d-crds", "argon2d250" },
{ "argon2d-dyn", "argon2d500" },
{ "argon2d-uis", "argon2d4096" },
{ "bcd", "x13bcd" },
{ "bitcore", "timetravel10" },
{ "bitzeny", "yescryptr8" },
{ "blake256r8", "blakecoin" },
Expand Down
2 changes: 1 addition & 1 deletion algo/blake/blake-hash-4way.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ typedef struct {
typedef blake_8way_small_context blake256_8way_context;
void blake256_8way_init(void *cc);
void blake256_8way_update(void *cc, const void *data, size_t len);
#define blake256_8way blake256_8way_update
//#define blake256_8way blake256_8way_update
void blake256_8way_close(void *cc, void *dst);

// 14 rounds, blake, decred
Expand Down
5 changes: 3 additions & 2 deletions algo/blake/blake256-hash-4way.c
Original file line number Diff line number Diff line change
Expand Up @@ -842,7 +842,8 @@ blake32_4way_init( blake_4way_small_context *ctx, const uint32_t *iv,
}

static void
blake32_4way( blake_4way_small_context *ctx, const void *data, size_t len )
blake32_4way( blake_4way_small_context *ctx, const void *data,
size_t len )
{
__m128i *buf = (__m128i*)ctx->buf;
size_t bptr = ctx->ptr<<2;
Expand Down Expand Up @@ -1237,7 +1238,7 @@ blake256_4way_init(void *ctx)
}

void
blake256_4way(void *ctx, const void *data, size_t len)
blake256_4way_update(void *ctx, const void *data, size_t len)
{
blake32_4way(ctx, data, len);
}
Expand Down
3 changes: 1 addition & 2 deletions algo/blake/blake2s-hash-4way.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#ifndef __BLAKE2S_HASH_4WAY_H__
#define __BLAKE2S_HASH_4WAY_H__ 1

//#if defined(__SSE4_2__)
#if defined(__SSE2__)

#include "simd-utils.h"
Expand Down Expand Up @@ -132,6 +131,6 @@ int blake2s_16way_final( blake2s_16way_state *S, void *out, uint8_t outlen );
}
#endif

#endif // __SSE4_2__
#endif // __SSE2__

#endif
3 changes: 1 addition & 2 deletions algo/bmw/bmw512-4way.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ int scanhash_bmw512_8way( struct work *work, uint32_t max_nonce,

for ( int lane = 0; lane < 8; lane++ )
if ( unlikely( hash7[ lane<<1 ] < Htarg ) )
// if ( ( ( hash7[ lane<<1 ] & 0xFFFFFF00 ) == 0 ) )
{
extr_lane_8x64( lane_hash, hash, lane, 256 );
if ( fulltest( lane_hash, ptarget ) )
Expand All @@ -66,7 +65,7 @@ void bmw512hash_4way(void *state, const void *input)
{
bmw512_4way_context ctx;
bmw512_4way_init( &ctx );
bmw512_4way( &ctx, input, 80 );
bmw512_4way_update( &ctx, input, 80 );
bmw512_4way_close( &ctx, state );
}

Expand Down
22 changes: 21 additions & 1 deletion algo/cubehash/cubehash_sse2.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,27 @@ static void transform( cubehashParam *sp )
int r;
const int rounds = sp->rounds;

#ifdef __AVX2__
#if defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && defined(__AVX512BW__)

register __m512i x0, x1;

x0 = _mm512_load_si512( (__m512i*)sp->x );
x1 = _mm512_load_si512( (__m512i*)sp->x + 1 );

for ( r = 0; r < rounds; ++r )
{
x1 = _mm512_add_epi32( x0, x1 );
x0 = _mm512_xor_si512( mm512_rol_32( mm512_swap_256( x0 ), 7 ), x1 );
x1 = _mm512_add_epi32( x0, mm512_swap128_64( x1 ) );
x0 = _mm512_xor_si512( mm512_rol_32(
mm512_swap256_128( x0 ), 11 ), x1 );
x1 = mm512_swap64_32( x1 );
}

_mm512_store_si512( (__m512i*)sp->x, x0 );
_mm512_store_si512( (__m512i*)sp->x + 1, x1 );

#elif defined(__AVX2__)

register __m256i x0, x1, x2, x3, y0, y1;

Expand Down
18 changes: 9 additions & 9 deletions algo/echo/aes_ni/hash.c
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ void Compress(hashState_echo *ctx, const unsigned char *pmsg, unsigned int uBloc
{
for(i = 0; i < 4; i++)
{
_state[i][j] = _mm_loadu_si128((__m128i*)pmsg + 4 * (j - (ctx->uHashSize / 256)) + i);
_state[i][j] = _mm_load_si128((__m128i*)pmsg + 4 * (j - (ctx->uHashSize / 256)) + i);
}
}

Expand Down Expand Up @@ -390,13 +390,13 @@ HashReturn final_echo(hashState_echo *state, BitSequence *hashval)
}

// Store the hash value
_mm_storeu_si128((__m128i*)hashval + 0, state->state[0][0]);
_mm_storeu_si128((__m128i*)hashval + 1, state->state[1][0]);
_mm_store_si128((__m128i*)hashval + 0, state->state[0][0]);
_mm_store_si128((__m128i*)hashval + 1, state->state[1][0]);

if(state->uHashSize == 512)
{
_mm_storeu_si128((__m128i*)hashval + 2, state->state[2][0]);
_mm_storeu_si128((__m128i*)hashval + 3, state->state[3][0]);
_mm_store_si128((__m128i*)hashval + 2, state->state[2][0]);
_mm_store_si128((__m128i*)hashval + 3, state->state[3][0]);
}

return SUCCESS;
Expand Down Expand Up @@ -513,13 +513,13 @@ HashReturn update_final_echo( hashState_echo *state, BitSequence *hashval,
}

// Store the hash value
_mm_storeu_si128( (__m128i*)hashval + 0, state->state[0][0] );
_mm_storeu_si128( (__m128i*)hashval + 1, state->state[1][0] );
_mm_store_si128( (__m128i*)hashval + 0, state->state[0][0] );
_mm_store_si128( (__m128i*)hashval + 1, state->state[1][0] );

if( state->uHashSize == 512 )
{
_mm_storeu_si128( (__m128i*)hashval + 2, state->state[2][0] );
_mm_storeu_si128( (__m128i*)hashval + 3, state->state[3][0] );
_mm_store_si128( (__m128i*)hashval + 2, state->state[2][0] );
_mm_store_si128( (__m128i*)hashval + 3, state->state[3][0] );

}
return SUCCESS;
Expand Down
Loading

0 comments on commit 3572cb5

Please sign in to comment.