Вернуться   Биткоин Форум > - Mining (Altcoins)
17 октября 2015, 8:39:03 PM   # 1
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я отпускаю с открытым исходным кодом моего Myriad-Groestl OpenCL ядра, которое быстрее, чем любое общественное ядро, включая один в комплекте с текущем SGminer. Существует повышение производительности на 10%, по меньшей мере. Испытано отлично на Linux и Windows. Поддерживает размеры работы 64, 128 и 256.

Код:
/ *
 * Myriadcoin Groestl ядра реализации (Groestl-512 + SHA-256)
 *
 * ========================== (ЛИЦЕНЗИЯ НАЧАТЬ) =================== =========
 *
 * Copyright (с) 2007-2010 Томас Pornin
 * Copyright (с) 2014 PhM
 * Copyright (с) 2014-2015 Джон Деринг
 *
 * Разрешение Настоящим предоставляется бесплатно, любому лицу, приобретающему
 * Копию этого программного обеспечения и связанных с ними файлов документации (
 * "Программного обеспечения"), Чтобы иметь дело в Программное обеспечение без ограничений, в том числе
 * Без ограничения права на использование, копирование, изменение, объединение, публикацию,
 * Распространять, лицензировать и / или продавать копии программного обеспечения, и
 * Разрешать лицам, которым Программное обеспечение мебелью, чтобы сделать это, при условии
 * следующие условия:
 *
 * Приведенное выше уведомление об авторских правах и данное разрешение должно быть
 * Включены во все копии или существенные части Программного обеспечения.
 *
 * ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ,
 * ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ
 * КОММЕРЧЕСКОЙ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ.
 * НИ ПРИ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ ОТВЕТСТВЕННОСТИ ЗА
 * ЗАЯВКА, ИЛИ УБЫТКИ, НЕЗАВИСИМО ОТ ДЕЙСТВИЯ ДОГОВОРА,
 * ПРАВОНАРУШЕНИЯ ИЛИ ИНАЧЕ, ВОЗНИКАЮЩИЕ ИЗ, ИЛИ В СВЯЗИ С
 * ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
 *
 * =========================== (ЛИЦЕНЗИОННОЕ END) ================== ===========
 * /

#ifndef MYRIADCOIN_GROESTL_CL
#define MYRIADCOIN_GROESTL_CL

#if __ENDIAN_LITTLE__
#define SPH_LITTLE_ENDIAN 1
#else
#define SPH_BIG_ENDIAN 1
#endif

#define С32 (а) ((UINT) (а ## U))
#define Т32 (а) (as_uint (а))
#define ROTL32 (а, б) поворот (as_uint (а), as_uint (б))
#define ROTR32 (а, б) ROTL32 (а, (32 - (б)))

#define С64 (а) ((ULONG) (а ## UL))
#define T64 (а) (as_ulong (а))

#undef USE_LE
#if SPH_GROESTL_LITTLE_ENDIAN
#define USE_LE 1
#elif SPH_GROESTL_BIG_ENDIAN
#define USE_LE 0
#elif SPH_LITTLE_ENDIAN
#define USE_LE 1
#endif

#if USE_LE

#define C64e (х) ((С64 (х) >> 56) \
                    | ((С64 (х) >> 40) & C64 (0x000000000000FF00)) \
                    | ((С64 (х) >> 24) & C64 (0x0000000000FF0000)) \
                    | ((С64 (х) >>  8) & C64 (0x00000000FF000000)) \
                    | ((С64 (х) <<  8) & C64 (0x000000FF00000000)) \
                    | ((С64 (х) << 24) & C64 (0x0000FF0000000000)) \
                    | ((С64 (х) << 40) & C64 (0x00FF000000000000)) \
                    | ((С64 (х) << 56) & С64 (0xFF00000000000000)))
#define B64_0 (х) ((х) & 0xFF)
#define B64_1 (х) (((х) >> 8) & 0xFF)
#define B64_2 (х) (((х) >> 16) & 0xFF)
#define B64_3 (х) (((х) >> 24) & 0xFF)
#define B64_4 (х) (((х) >> 32) & 0xFF)
#define B64_5 (х) (((х) >> 40) & 0xFF)
#define B64_6 (х) (((х) >> 48) & 0xFF)
#define B64_7 (х) ((х) >> 56)
#define PC64 (к, г) ((ULONG) ((J) + (г)))
#define QC64 (к, г) (((ULONG) (г) << 56) ^ T64 (~ ((ULONG) (к) << 56)))
#define Н15 (((ULONG) (512 & 0xFF) << 56) | ((ULONG) (512 & 0xFF00) << 40))

#else

#define C64e (х) С64 (х)
#define B64_0 (х) ((х) >> 56)
#define B64_1 (х) (((х) >> 48) & 0xFF)
#define B64_2 (х) (((х) >> 40) & 0xFF)
#define B64_3 (х) (((х) >> 32) & 0xFF)
#define B64_4 (х) (((х) >> 24) & 0xFF)
#define B64_5 (х) (((х) >> 16) & 0xFF)
#define B64_6 (х) (((х) >> 8) & 0xFF)
#define B64_7 (х) ((х) & 0xFF)
#define PC64 (к, г) ((ULONG) ((J) + (г)) << 56)
#define QC64 (J, г) ((ULONG) (г) ^ T64 (~ (ULONG) (J)))
#define Н15 (ULONG) 512

#endif

#define M15 0x100000000000000

__constant ULONG Т0 [] = {
    C64e (0xc632f4a5f497a5c6), C64e (0xf86f978497eb84f8),
    C64e (0xee5eb099b0c799ee), C64e (0xf67a8c8d8cf78df6),
    C64e (0xffe8170d17e50dff), C64e (0xd60adcbddcb7bdd6),
    C64e (0xde16c8b1c8a7b1de), C64e (0x916dfc54fc395491),
    C64e (0x6090f050f0c05060), C64e (0x0207050305040302),
    C64e (0xce2ee0a9e087a9ce), C64e (0x56d1877d87ac7d56),
    C64e (0xe7cc2b192bd519e7), C64e (0xb513a662a67162b5),
    C64e (0x4d7c31e6319ae64d), C64e (0xec59b59ab5c39aec),
    C64e (0x8f40cf45cf05458f), C64e (0x1fa3bc9dbc3e9d1f),
    C64e (0x8949c040c0094089), C64e (0xfa68928792ef87fa),
    C64e (0xefd03f153fc515ef), C64e (0xb29426eb267febb2),
    C64e (0x8ece40c94007c98e), C64e (0xfbe61d0b1ded0bfb),
    C64e (0x416e2fec2f82ec41), C64e (0xb31aa967a97d67b3),
    C64e (0x5f431cfd1cbefd5f), C64e (0x456025ea258aea45),
    C64e (0x23f9dabfda46bf23), C64e (0x535102f702a6f753),
    C64e (0xe445a196a1d396e4), C64e (0x9b76ed5bed2d5b9b),
    C64e (0x75285dc25deac275), C64e (0xe1c5241c24d91ce1),
    C64e (0x3dd4e9aee97aae3d), C64e (0x4cf2be6abe986a4c),
    C64e (0x6c82ee5aeed85a6c), C64e (0x7ebdc341c3fc417e),
    C64e (0xf5f3060206f102f5), C64e (0x8352d14fd11d4f83),
    C64e (0x688ce45ce4d05c68), C64e (0x515607f407a2f451),
    C64e (0xd18d5c345cb934d1), C64e (0xf9e1180818e908f9),
    C64e (0xe24cae93aedf93e2), C64e (0xab3e9573954d73ab),
    C64e (0x6297f553f5c45362), C64e (0x2a6b413f41543f2a),
    C64e (0x081c140c14100c08), C64e (0x9563f652f6315295),
    C64e (0x46e9af65af8c6546), C64e (0x9d7fe25ee2215e9d),
    C64e (0x3048782878602830), C64e (0x37cff8a1f86ea137),
    C64e (0x0a1b110f11140f0a), C64e (0x2febc4b5c45eb52f),
    C64e (0x0e151b091b1c090e), C64e (0x247e5a365a483624),
    C64e (0x1badb69bb6369b1b), C64e (0xdf98473d47a53ddf),
    C64e (0xcda76a266a8126cd), C64e (0x4ef5bb69bb9c694e),
    C64e (0x7f334ccd4cfecd7f), C64e (0xea50ba9fbacf9fea),
    C64e (0x123f2d1b2d241b12), C64e (0x1da4b99eb93a9e1d),
    C64e (0x58c49c749cb07458), C64e (0x3446722e72682e34),
    C64e (0x3641772d776c2d36), C64e (0xdc11cdb2cda3b2dc),
    C64e (0xb49d29ee2973eeb4), C64e (0x5b4d16fb16b6fb5b),
    C64e (0xa4a501f60153f6a4), C64e (0x76a1d74dd7ec4d76),
    C64e (0xb714a361a37561b7), C64e (0x7d3449ce49face7d),
    C64e (0x52df8d7b8da47b52), C64e (0xdd9f423e42a13edd),
    C64e (0x5ecd937193bc715e), C64e (0x13b1a297a2269713),
    C64e (0xa6a204f50457f5a6), C64e (0xb901b868b86968b9),
    C64e (0x0000000000000000), C64e (0xc1b5742c74992cc1),
    C64e (0x40e0a060a0806040), C64e (0xe3c2211f21dd1fe3),
    C64e (0x793a43c843f2c879), C64e (0xb69a2ced2c77edb6),
    C64e (0xd40dd9bed9b3bed4), C64e (0x8d47ca46ca01468d),
    C64e (0x671770d970ced967), C64e (0x72afdd4bdde44b72),
    C64e (0x94ed79de7933de94), C64e (0x98ff67d4672bd498),
    C64e (0xb09323e8237be8b0), C64e (0x855bde4ade114a85),
    C64e (0xbb06bd6bbd6d6bbb), C64e (0xc5bb7e2a7e912ac5),
    C64e (0x4f7b34e5349ee54f), C64e (0xedd73a163ac116ed),
    C64e (0x86d254c55417c586), C64e (0x9af862d7622fd79a),
    C64e (0x6699ff55ffcc5566), C64e (0x11b6a794a7229411),
    C64e (0x8ac04acf4a0fcf8a), C64e (0xe9d9301030c910e9),
    C64e (0x040e0a060a080604), C64e (0xfe66988198e781fe),
    C64e (0xa0ab0bf00b5bf0a0), C64e (0x78b4cc44ccf04478),
    C64e (0x25f0d5bad54aba25), C64e (0x4b753ee33e96e34b),
    C64e (0xa2ac0ef30e5ff3a2), C64e (0x5d4419fe19bafe5d),
    C64e (0x80db5bc05b1bc080), C64e (0x0580858a850a8a05),
    C64e (0x3fd3ecadec7ead3f), C64e (0x21fedfbcdf42bc21),
    C64e (0x70a8d848d8e04870), C64e (0xf1fd0c040cf904f1),
    C64e (0x63197adf7ac6df63), C64e (0x772f58c158eec177),
    C64e (0xaf309f759f4575af), C64e (0x42e7a563a5846342),
    C64e (0x2070503050403020), C64e (0xe5cb2e1a2ed11ae5),
    C64e (0xfdef120e12e10efd), C64e (0xbf08b76db7656dbf),
    C64e (0x8155d44cd4194c81), C64e (0x18243c143c301418),
    C64e (0x26795f355f4c3526), ​​C64e (0xc3b2712f719d2fc3),
    C64e (0xbe8638e13867e1be), C64e (0x35c8fda2fd6aa235),
    C64e (0x88c74fcc4f0bcc88), C64e (0x2e654b394b5c392e),
    C64e (0x936af957f93d5793), C64e (0x55580df20daaf255),
    C64e (0xfc619d829de382fc), C64e (0x7ab3c947c9f4477a),
    C64e (0xc827efacef8bacc8), C64e (0xba8832e7326fe7ba),
    C64e (0x324f7d2b7d642b32), C64e (0xe642a495a4d795e6),
    C64e (0xc03bfba0fb9ba0c0), C64e (0x19aab398b3329819),
    C64e (0x9ef668d16827d19e), C64e (0xa322817f815d7fa3),
    C64e (0x44eeaa66aa886644), C64e (0x54d6827e82a87e54),
    C64e (0x3bdde6abe676ab3b), C64e (0x0b959e839e16830b),
    C64e (0x8cc945ca4503ca8c), C64e (0xc7bc7b297b9529c7),
    C64e (0x6b056ed36ed6d36b), C64e (0x286c443c44503c28),
    C64e (0xa72c8b798b5579a7), C64e (0xbc813de23d63e2bc),
    C64e (0x1631271d272c1d16), C64e (0xad379a769a4176ad),
    C64e (0xdb964d3b4dad3bdb), C64e (0x649efa56fac85664),
    C64e (0x74a6d24ed2e84e74), C64e (0x1436221e22281e14),
    C64e (0x92e476db763fdb92), C64e (0x0c121e0a1e180a0c),
    C64e (0x48fcb46cb4906c48), C64e (0xb88f37e4376be4b8),
    C64e (0x9f78e75de7255d9f), C64e (0xbd0fb26eb2616ebd),
    C64e (0x43692aef2a86ef43), C64e (0xc435f1a6f193a6c4),
    C64e (0x39dae3a8e372a839), C64e (0x31c6f7a4f762a431),
    C64e (0xd38a593759bd37d3), C64e (0xf274868b86ff8bf2),
    C64e (0xd583563256b132d5), C64e (0x8b4ec543c50d438b),
    C64e (0x6e85eb59ebdc596e), C64e (0xda18c2b7c2afb7da),
    C64e (0x018e8f8c8f028c01), C64e (0xb11dac64ac7964b1),
    C64e (0x9cf16dd26d23d29c), C64e (0x49723be03b92e049),
    C64e (0xd81fc7b4c7abb4d8), C64e (0xacb915fa1543faac),
    C64e (0xf3fa090709fd07f3), C64e (0xcfa06f256f8525cf),
    C64e (0xca20eaafea8fafca), C64e (0xf47d898e89f38ef4),
    C64e (0x476720e9208ee947), C64e (0x1038281828201810),
    C64e (0x6f0b64d564ded56f), C64e (0xf073838883fb88f0),
    C64e (0x4afbb16fb1946f4a), C64e (0x5cca967296b8725c),
    C64e (0x38546c246c702438), C64e (0x575f08f108aef157),
    C64e (0x732152c752e6c773), C64e (0x9764f351f3355197),
    C64e (0xcbae6523658d23cb), C64e (0xa125847c84597ca1),
    C64e (0xe857bf9cbfcb9ce8), C64e (0x3e5d6321637c213e),
    C64e (0x96ea7cdd7c37dd96), C64e (0x611e7fdc7fc2dc61),
    C64e (0x0d9c9186911a860d), C64e (0x0f9b9485941e850f),
    C64e (0xe04bab90abdb90e0), C64e (0x7cbac642c6f8427c),
    C64e (0x712657c457e2c471), C64e (0xcc29e5aae583aacc),
    C64e (0x90e373d8733bd890), C64e (0x06090f050f0c0506),
    C64e (0xf7f4030103f501f7), C64e (0x1c2a36123638121c),
    C64e (0xc23cfea3fe9fa3c2), C64e (0x6a8be15fe1d45f6a),
    C64e (0xaebe10f91047f9ae), C64e (0x69026bd06bd2d069),
    C64e (0x17bfa891a82e9117), C64e (0x9971e858e8295899),
    C64e (0x3a5369276974273a), C64e (0x27f7d0b9d04eb927),
    C64e (0xd991483848a938d9), C64e (0xebde351335cd13eb),
    C64e (0x2be5ceb3ce56b32b), C64e (0x2277553355443322),
    C64e (0xd204d6bbd6bfbbd2), C64e (0xa9399070904970a9),
    C64e (0x07878089800e8907), C64e (0x33c1f2a7f266a733),
    C64e (0x2decc1b6c15ab62d), C64e (0x3c5a66226678223c),
    C64e (0x15b8ad92ad2a9215), C64e (0xc9a96020608920c9),
    C64e (0x875cdb49db154987), C64e (0xaab01aff1a4fffaa),
    C64e (0x50d8887888a07850), C64e (0xa52b8e7a8e517aa5),
    C64e (0x03898a8f8a068f03), C64e (0x594a13f813b2f859),
    C64e (0x09929b809b128009), C64e (0x1a2339173934171a),
    C64e (0x651075da75cada65), C64e (0xd784533153b531d7),
    C64e (0x84d551c65113c684), C64e (0xd003d3b8d3bbb8d0),
    C64e (0x82dc5ec35e1fc382), C64e (0x29e2cbb0cb52b029),
    C64e (0x5ac3997799b4775a), C64e (0x1e2d3311333c111e),
    C64e (0x7b3d46cb46f6cb7b), C64e (0xa8b71ffc1f4bfca8),
    C64e (0x6d0c61d661dad66d), C64e (0x2c624e3a4e583a2c)
};

#define РБТТ (д, а, b0, b1, b2, b3, b4, b5, b6, b7) делают {\
    т [D] = Т0 [B64_0 (а [b0])] \
         ^ Т1 [B64_1 (а [б1])] \
         ^ Т2 [B64_2 (а [б2])] \
         ^ T3 [B64_3 (а [b3])] \
         ^ T4 [B64_4 (а [b4])] \
         ^ T5 [B64_5 (а [b5])] \
         ^ T6 [B64_6 (а [b6])] \
         ^ Т7 [B64_7 (а [B7])]; \
} В то время как (0)

#define ROUND_BIG_P (а, г) делают {\
а [0] ^ = PC64 (0x00, г); \
а [1] ^ = PC64 (0x10, г); \
а [2] ^ = PC64 (0x20, г); \
а [3] ^ = PC64 (0x30, г); \
а [4] ^ = PC64 (0x40, г); \
а [5] ^ = PC64 (0x50, г); \
а [6] ^ = PC64 (0x60, г); \
а [7] ^ = PC64 (0x70, г); \
а [8] ^ = PC64 (0x80, г); \
а [9] ^ = PC64 (0x90, г); \
а [10] ^ = PC64 (0xA0, г); \
а [11] ^ = PC64 (0xB0, г); \
а [12] ^ = PC64 (0xC0, г); \
а [13] ^ = PC64 (0xD0, г); \
а [14] ^ = PC64 (0xE0, г); \
а [15] ^ = PC64 (0xF0, г); \
РБТТ (0, а, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0xB); \
РБТТ (1, а, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xC); \
РБТТ (2, а, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xD); \
РБТТ (3, а, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xE); \
РБТТ (4, а, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xF); \
РБТТ (5, а, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0x0); \
РБТТ (6, а, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0x1); \
РБТТ (7, а, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0x2); \
РБТТ (8, а, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0x3); \
РБТТ (9, а, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x4); \
РБТТ (10, а, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x0, 0x5); \
РБТТ (11, а, 0xB, 0xC, 0xD, 0xE, 0xF, 0x0, 0x1, 0x6); \
РБТТ (12, а, 0xC, 0xD, 0xE, 0xF, 0x0, 0x1, 0x2, 0x7); \
РБТТ (13, а, 0xD, 0xE, 0xF, 0x0, 0x1, 0x2, 0x3, 0x8); \
РБТТ (14, а, 0xE, 0xF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x9); \
РБТТ (15, а, 0xF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xA); \
а [0] = т [0]; \
а [1] = т [1]; \
а [2] = т [2]; \
а [3] = т [3]; \
а [4] = т [4]; \
а [5] = т [5]; \
а [6] = т [6]; \
а [7] = т [7]; \
а [8] = т [8]; \
а [9] = т [9]; \
а [10] = т [10]; \
а [11] = т [11]; \
а [12] = т [12]; \
[13] = т [13]; \
а [14] = т [14]; \
а [15] = т [15]; \
    } В то время как (0)

#define ROUND_BIG_Q (а, г) делают {\
а [0] ^ = QC64 (0x00, г); \
а [1] ^ = QC64 (0x10, г); \
а [2] ^ = QC64 (0x20, г); \
а [3] ^ = QC64 (0x30, г); \
а [4] ^ = QC64 (0x40, г); \
а [5] ^ = QC64 (0x50, г); \
а [6] ^ = QC64 (0x60, г); \
а [7] ^ = QC64 (0x70, г); \
а [8] ^ = QC64 (0x80, г); \
а [9] ^ = QC64 (0x90, г); \
а [10] ^ = QC64 (0xA0, г); \
а [11] ^ = QC64 (0xB0, г); \
а [12] ^ = QC64 (0xC0, г); \
а [13] ^ = QC64 (0xD0, г); \
а [14] ^ = QC64 (0xE0, г); \
а [15] ^ = QC64 (0xF0, г); \
РБТТ (0x0, а, 0x1, 0x3, 0x5, 0xB, 0x0, 0x2, 0x4, 0x6); \
РБТТ (0x1, а, 0x2, 0x4, 0x6, 0xC, 0x1, 0x3, 0x5, 0x7); \
РБТТ (0x2, а, 0x3, 0x5, 0x7, 0xD, 0x2, 0x4, 0x6, 0x8); \
РБТТ (0х3, а, 0x4, 0x6, 0x8, 0xE, 0x3, 0x5, 0x7, 0x9); \
РБТТ (0х4, а, 0x5, 0x7, 0x9, 0xF, 0x4, 0x6, 0x8, 0xA); \
РБТТ (0x5, а, 0x6, 0x8, 0xA, 0x0, 0x5, 0x7, 0x9, 0xB); \
РБТТ (0x6, а, 0x7, 0x9, 0xB, 0x1, 0x6, 0x8, 0xA, 0xC); \
РБТТ (0x7, а, 0x8, 0xA, 0xC, 0x2, 0x7, 0x9, 0xB, 0xD); \
РБТТ (0x8, а, 0x9, 0xB, 0xD, 0x3, 0x8, 0xA, 0xC, 0xE); \
РБТТ (0x9, а, 0xA, 0xC, 0xE, 0x4, 0x9, 0xB, 0xD, 0xF); \
РБТТ (0xA, а, 0xB, 0xD, 0xF, 0x5, 0xA, 0xC, 0xE, 0x0); \
РБТТ (0xB, а, 0xC, 0xE, 0x0, 0x6, 0xB, 0xD, 0xF, 0x1); \
РБТТ (0xC, а, 0xD, 0xF, 0x1, 0x7, 0xC, 0xE, 0x0, 0x2); \
РБТТ (0xD, а, 0xE, 0x0, 0x2, 0x8, 0xD, 0xF, 0x1, 0x3); \
РБТТ (0xE, а, 0xF, 0x1, 0x3, 0x9, 0xE, 0x0, 0x2, 0x4); \
РБТТ (0xF, а, 0x0, 0x2, 0x4, 0xA, 0xF, 0x1, 0x3, 0x5); \
а [0] = т [0]; \
а [1] = т [1]; \
а [2] = т [2]; \
а [3] = т [3]; \
а [4] = т [4]; \
а [5] = т [5]; \
а [6] = т [6]; \
а [7] = т [7]; \
а [8] = т [8]; \
а [9] = т [9]; \
а [10] = т [10]; \
а [11] = т [11]; \
а [12] = т [12]; \
[13] = т [13]; \
а [14] = т [14]; \
а [15] = т [15]; \
} В то время как (0)

#define SWAP4 (х) as_uint (as_uchar4 (х) .wzyx)
#define SWAP8 (х) as_ulong (as_uchar8 (х) .s76543210)

#if SPH_BIG_ENDIAN
  #define ENC64E (х) SWAP8 (х)
  #define DEC64E (х) SWAP8 (* (Const Подружился ULONG *) (х));
#else
  #define ENC64E (х) (х)
  #define DEC64E (х) (* (Const Подружился ULONG *) (х));
#endif

#define ШР (х, п) ((х) >> п)
#define SWAP32 (а) (as_uint (as_uchar4 (а) .wzyx))

#define S0 (х) (ROTL32 (х, 25) ^ ROTL32 (х, 14) ^ ШР (х, 3))
#define S1 (х) (ROTL32 (х, 15) ^ ROTL32 (х, 13) ^ ШР (х, 10))

#define S2 (х) (ROTL32 (х, 30) ^ ROTL32 (х, 19) ^ ROTL32 (х, 10))
#define S3 (х) (ROTL32 (х, 26) ^ ROTL32 (х, 21) ^ ROTL32 (х, 7))

#define Р (а, б, в, г, д, е, ж, з, х, К) {\
  Темп = А + S3, (е) + F1 (д, е, ж) + (К + х); \
  D + = темп; ч = темп + S2 (а) + Р0 (а, б, в); \
}

#define PLAST (а, б, в, г, д, е, ж, з, х, К) {\
  D + = H + S3 (е) + F1 (д, е, ж) + (х + К); \
}

#define Р0 (у, х, г) bitselect (х, у, г ^ х)
#define F1 (х, у, г) bitselect (х, у, х)

#define R0 (W0 = S1 (W14) + W9 + S0 (W1) + W0)
#define R1 (W1 = S1 (W15) + W10 + S0 (W2) + W1)
#define R2 (W2 = S1 (W0) + W11 + S0 (W3) + W2)
#define R3 (W3 = S1 (W1) + W12 + S0 (W4) + W3)
#define R4 (W4 = S1 (W2) + W13 + S0 (W5) + W4)
#define R5 (W5 = S1 (W3) + W14 + S0 (W6) + W5)
#define R6 (W6 = S1 (W4) + W15 + S0 (W7) + W6)
#define R7 (W7 = S1 (W5) + W0 + S0 (W8) + W7)
#define R8 (W8 = S1 (W6) + W1 + S0 (W9) + W8)
#define R9 (W9 = S1 (W7) + W2 + S0 (W10) + W9)
#define R10 (W10 = S1 (W8) + W3 + S0 (W11) + W10)
#define R 11 (W11 = S1 (W9) + W4 + S0 (W12) + W11)
#define R12 (W12 = S1 (W10) + W5 + S0 (W13) + W12)
#define R13 (W13 = S1 (W11) + W6 + S0 (W14) + W13)
#define R14 (W14 = S1 (W12) + W7 + S0 (W15) + W14)
#define R15 (W15 = S1 (W13) + W8 + S0 (W0) + W15)

#define RD14 (S1 (W12) + W7 + S0 (W15) + W14)
#define RD15 (S1 (W13) + W8 + S0 (W0) + W15)


__kernel __attribute __ ((vec_type_hint (uint4)))
__kernel __attribute __ ((reqd_work_group_size (WORKSIZE, 1, 1)))
__kernel недействительным поиска (__ глобального неподписанного символ * блок, летучий Подружился UINT * выход,
  Const ULONG мишень)
    UINT glbid = get_global_id (0);
    UINT lclid = get_local_id (0);
    ULONG г;
    UINT I;

    / * Groestl-512 * /

    __private ulong16 GMT [3];
    ULONG * г = (ULONG *) &Текущее время: [0];
    ULONG * т = (ULONG *) &Текущее время: [1];
    ULONG * т = (ULONG *) &GMT [2];

    __local ULONG T0_L [256], T1_L [256], T2_L [256], T3_L [256],
      T4_L [256], T5_L [256], T6_L [256], T7_L [256];

    / * Вычисляет таблицу * /

#if (WORKSIZE == 64)
    T0_L [lclid] = Т0 [lclid];
    T0_L [lclid + 64] = Т0 [lclid + 64];
    T0_L [lclid + 128] = Т0 [lclid + 128];
    T0_L [lclid + 192] = Т0 [lclid + 192];
    T1_L [lclid] = повернуть (T0 [lclid], 8UL);
    T1_L [lclid + 64] = вращаться (Т0 [lclid + 64], 8UL);
    T1_L [lclid + 128] = поворот (Т0 [lclid + 128], 8UL);
    T1_L [lclid + 192] = поворот (Т0 [lclid + 192], 8UL);
    T2_L [lclid] = повернуть (T0 [lclid], 16UL);
    T2_L [lclid + 64] = вращаться (Т0 [lclid + 64], 16UL);
    T2_L [lclid + 128] = поворот (Т0 [lclid + 128], 16UL);
    T2_L [lclid + 192] = поворот (Т0 [lclid + 192], 16UL);
    T3_L [lclid] = повернуть (T0 [lclid], 24UL);
    T3_L [lclid + 64] = вращаться (Т0 [lclid + 64], 24UL);
    T3_L [lclid + 128] = поворот (Т0 [lclid + 128], 24UL);
    T3_L [lclid + 192] = поворот (Т0 [lclid + 192], 24UL);
    T4_L [lclid] = повернуть (T0 [lclid], 32UL);
    T4_L [lclid + 64] = вращаться (Т0 [lclid + 64], 32UL);
    T4_L [lclid + 128] = поворот (Т0 [lclid + 128], 32UL);
    T4_L [lclid + 192] = поворот (Т0 [lclid + 192], 32UL);
    T5_L [lclid] = повернуть (T0 [lclid], 40UL);
    T5_L [lclid + 64] = вращаться (Т0 [lclid + 64], 40UL);
    T5_L [lclid + 128] = поворот (Т0 [lclid + 128], 40UL);
    T5_L [lclid + 192] = поворот (Т0 [lclid + 192], 40UL);
    T6_L [lclid] = повернуть (T0 [lclid], 48UL);
    T6_L [lclid + 64] = вращаться (Т0 [lclid + 64], 48UL);
    T6_L [lclid + 128] = поворот (Т0 [lclid + 128], 48UL);
    T6_L [lclid + 192] = поворот (Т0 [lclid + 192], 48UL);
    T7_L [lclid] = повернуть (T0 [lclid], 56UL);
    T7_L [lclid + 64] = вращаться (Т0 [lclid + 64], 56UL);
    T7_L [lclid + 128] = поворот (Т0 [lclid + 128], 56UL);
    T7_L [lclid + 192] = поворот (Т0 [lclid + 192], 56UL);
#elif (WORKSIZE == 128)
    T0_L [lclid] = Т0 [lclid];
    T0_L [lclid + 128] = Т0 [lclid + 128];
    T1_L [lclid] = повернуть (T0 [lclid], 8UL);
    T1_L [lclid + 128] = поворот (Т0 [lclid + 128], 8UL);
    T2_L [lclid] = повернуть (T0 [lclid], 16UL);
    T2_L [lclid + 128] = поворот (Т0 [lclid + 128], 16UL);
    T3_L [lclid] = повернуть (T0 [lclid], 24UL);
    T3_L [lclid + 128] = поворот (Т0 [lclid + 128], 24UL);
    T4_L [lclid] = повернуть (T0 [lclid], 32UL);
    T4_L [lclid + 128] = поворот (Т0 [lclid + 128], 32UL);
    T5_L [lclid] = повернуть (T0 [lclid], 40UL);
    T5_L [lclid + 128] = поворот (Т0 [lclid + 128], 40UL);
    T6_L [lclid] = повернуть (T0 [lclid], 48UL);
    T6_L [lclid + 128] = поворот (Т0 [lclid + 128], 48UL);
    T7_L [lclid] = повернуть (T0 [lclid], 56UL);
    T7_L [lclid + 128] = поворот (Т0 [lclid + 128], 56UL);
#elif (WORKSIZE == 256)
    T0_L [lclid] = Т0 [lclid];
    T1_L [lclid] = повернуть (T0 [lclid], 8UL);
    T2_L [lclid] = повернуть (T0 [lclid], 16UL);
    T3_L [lclid] = повернуть (T0 [lclid], 24UL);
    T4_L [lclid] = повернуть (T0 [lclid], 32UL);
    T5_L [lclid] = повернуть (T0 [lclid], 40UL);
    T6_L [lclid] = повернуть (T0 [lclid], 48UL);
    T7_L [lclid] = повернуть (T0 [lclid], 56UL);
#else
    вернуть;
#endif

#define T0 T0_L
#define Т1 T1_L
#define Т2 T2_L
#define T3 T3_L
#define T4 T4_L
#define T5 T5_L
#define T6 T6_L
#define T7 T7_L

    м [0] = DEC64E (блок);
    м [1] = DEC64E (блок + 8);
    м [2] = DEC64E (блок + 16);
    м [3] = DEC64E (блок + 24);
    м [4] = DEC64E (блок + 32);
    м [5] = DEC64E (блок + 40);
    м [6] = DEC64E (блок + 48);
    м [7] = DEC64E (блок + 56);
    м [8] = DEC64E (блок + 64);
    м [9] = DEC64E (блок + 72);
    м [9] &= 0x00000000FFFFFFFF;
    м [9]

#endif / * MYRIADCOIN_GROESTL_CL * /
ghostlander сейчас офлайн Пожаловаться на ghostlander   Ответить с цитированием Мультицитирование сообщения от ghostlander Быстрый ответ на сообщение ghostlander


Как заработать Биткоины?
Без вложений. Не майнинг.


17 октября 2015, 9:56:14 PM   # 2
 
 
Сообщений: 15
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Получил 1806 Биткоинов
Реальная история.





СПАСИБО

Radeon 7850 на стандартном ядре sgminer: ~ 4,5 МН / с, на ядре 14 MH / s
qaaq сейчас офлайн Пожаловаться на qaaq   Ответить с цитированием Мультицитирование сообщения от qaaq Быстрый ответ на сообщение qaaq

17 октября 2015, 10:46:07 PM   # 3
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

HD-5870 = 14MH / с, HD 6970 = 17MH / с, HD 7970 ГГц Ed = 27MH / с

все ссылки на скорости с памятью downclocked
ph4nt0m сейчас офлайн Пожаловаться на ph4nt0m   Ответить с цитированием Мультицитирование сообщения от ph4nt0m Быстрый ответ на сообщение ph4nt0m

18 октября 2015, 3:30:31 AM   # 4
 
 
Сообщения: 238
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Спасибо, что поделился!

EDIT 22 октября: Мой HD 7970 пошел от 17 МН / с до 33 МН / с. Я вернусь и вернуться к R9 290, когда я получаю какое-то время  

EDIT 24 октября: Не похоже, чтобы улучшить hashrate на R9 290 

----------------------------------------------------------------------------------------------------------------------------------------------------------

Здесь на Linux (Ubuntu 14.04) небольшое преимущество переходит к исходному ядру. Я попробовал его на обоих sgminer 5.1.0-разработчика, а также на sgminer_v5.1_2015-03-09.

Это мой AMD Radeon R9 290 оригинальных результаты ядра:
котировка
[22:55:20]
Сводка статистических данных во время выполнения:
                    
[22:55:20] Создана на [2015-10-17 22:42:40]                    
[22:55:20] Время воспроизведения: 0 ч: 10 мин: 50 сек                    
[22:55:20] Средняя hashrate: 27,8 Megahash / с                    
[22:55:20] Решаемые блоки: 0                    
[22:55:20] Лучшая доля сложности: 12                    
[22:55:20] Доля Доводы: 230                    
[22:55:20] Принятые акции: 225                    
[22:55:20] Отклонено акции: 5                    
[22:55:20] Принимаются сложности акции: 4                    
[22:55:20] Отклонено сложности акции: 0                    
[22:55:20] Отклонить соотношение: 2,2%                    
[22:55:20] Ошибка Оборудования: 0                    
[22:55:20] Коммунальные (принятые акции / мин): 21,39 / мин                    
[22:55:20] Работа Utility (diff1 акции решены / мин): 0,40 / мин
                    
[22:55:20] Устаревшие представления отбрасываются из-за новые блоки: 0                    
[22:55:20] Не удалось получить работу с серверными раз: 0                    
[22:55:20] Работа элементы локально: 1015                    
[22:55:20] Отправка работы удаленно задержать случаев: 0                    
[22:55:20] Новые блоки обнаружены в сети: 31

Это ваши результаты ядра:
котировка
[23:06:19]
Сводка статистических данных во время выполнения:
                    
[23:06:19] Создана на [2015-10-17 22:55:29]                    
[23:06:19] Время воспроизведения: 0 ч: 10 мин: 40 сек                    
[23:06:19] Средняя hashrate: 27.5 Megahash / с                    
[23:06:19] Решаемые блоки: 0                    
[23:06:19] Лучшая доля сложности: 5,232                    
[23:06:19] Доля Доводы: 207                    
[23:06:19] Принятые акции: 205                    
[23:06:19] Отклонено акции: 2                    
[23:06:19] Принимаются сложности акции: 4                    
[23:06:19] Отклонено сложности акции: 0                    
[23:06:19] Отклонить соотношение: 1,0%                    
[23:06:19] Ошибка Оборудования: 0                    
[23:06:19] Коммунальные (принятые акции / мин): 19,51 / мин                    
[23:06:19] Работа утилиты (diff1 акций решена / мин): 0,36 / мин
                    
[23:06:19] Устаревшие представления отбрасываются из-за новые блоки: 1                    
[23:06:19] Не удалось получить работу с серверными раз: 2                    
[23:06:19] Работа элементы локально: 962                    
[23:06:19] Отправка работы удаленно задержать случаев: 0                    
[23:06:19] Новые блоки обнаружены в сети: 19
                   
tanoury сейчас офлайн Пожаловаться на tanoury   Ответить с цитированием Мультицитирование сообщения от tanoury Быстрый ответ на сообщение tanoury

18 октября 2015, 9:49:42 AM   # 5
 
 
Сообщений: 94
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Спасибо, что поделился!

Здесь на Linux (Ubuntu 14.04) небольшое преимущество переходит к исходному ядру. Я попробовал его на обоих sgminer 5.1.0-разработчика, а также на sgminer_v5.1_2015-03-09.

Это мой AMD Radeon R9 290 оригинальных результаты ядра:
котировка
[22:55:20]
Сводка статистических данных во время выполнения:
                    
[22:55:20] Создана на [2015-10-17 22:42:40]                    
[22:55:20] Время воспроизведения: 0 ч: 10 мин: 50 сек                    
[22:55:20] Средняя hashrate: 27,8 Megahash / с                    
[22:55:20] Решаемые блоки: 0                    
[22:55:20] Лучшая доля сложности: 12                    
[22:55:20] Доля Доводы: 230                    
[22:55:20] Принятые акции: 225                    
[22:55:20] Отклонено акции: 5                    
[22:55:20] Принимаются сложности акции: 4                    
[22:55:20] Отклонено сложности акции: 0                    
[22:55:20] Отклонить соотношение: 2,2%                    
[22:55:20] Ошибка Оборудования: 0                    
[22:55:20] Коммунальные (принятые акции / мин): 21,39 / мин                    
[22:55:20] Работа Utility (diff1 акции решены / мин): 0,40 / мин
                    
[22:55:20] Устаревшие представления отбрасываются из-за новые блоки: 0                    
[22:55:20] Не удалось получить работу с серверными раз: 0                    
[22:55:20] Работа элементы локально: 1015                    
[22:55:20] Отправка работы удаленно задержать случаев: 0                    
[22:55:20] Новые блоки обнаружены в сети: 31

Это ваши результаты ядра:
котировка
[23:06:19]
Сводка статистических данных во время выполнения:
                    
[23:06:19] Создана на [2015-10-17 22:55:29]                    
[23:06:19] Время воспроизведения: 0 ч: 10 мин: 40 сек                    
[23:06:19] Средняя hashrate: 27.5 Megahash / с                    
[23:06:19] Решаемые блоки: 0                    
[23:06:19] Лучшая доля сложности: 5,232                    
[23:06:19] Доля Доводы: 207                    
[23:06:19] Принятые акции: 205                    
[23:06:19] Отклонено акции: 2                    
[23:06:19] Принимаются сложности акции: 4                    
[23:06:19] Отклонено сложности акции: 0                    
[23:06:19] Отклонить соотношение: 1,0%                    
[23:06:19] Ошибка Оборудования: 0                    
[23:06:19] Коммунальные (принятые акции / мин): 19,51 / мин                    
[23:06:19] Работа утилиты (diff1 акций решена / мин): 0,36 / мин
                    
[23:06:19] Устаревшие представления отбрасываются из-за новые блоки: 1                    
[23:06:19] Не удалось получить работу с серверными раз: 2                    
[23:06:19] Работа элементы локально: 962                    
[23:06:19] Отправка работы удаленно задержать случаев: 0                    
[23:06:19] Новые блоки обнаружены в сети: 19
                   


Я не понимаю, почему вы бы с помощью 290 помоему Myriad-Groestl на Linux? Неправильный алго.
depboy сейчас офлайн Пожаловаться на depboy   Ответить с цитированием Мультицитирование сообщения от depboy Быстрый ответ на сообщение depboy

18 октября 2015, 10:02:24 AM   # 6
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)



Я не понимаю, почему вы бы с помощью 290 помоему Myriad-Groestl на Linux? Неправильный алго.
да?
Я не понимаю, почему вы публикуете что? неправильно или случайный ответ ...
djm34 сейчас офлайн Пожаловаться на djm34   Ответить с цитированием Мультицитирование сообщения от djm34 Быстрый ответ на сообщение djm34

18 октября 2015, 10:56:49 AM   # 7
 
 
Сообщений: 94
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)



Я не понимаю, почему вы бы с помощью 290 помоему Myriad-Groestl на Linux? Неправильный алго.
да?
Я не понимаю, почему вы публикуете что? неправильно или случайный ответ ...

AFAIK, Myriad-Groestl используется только ДГБ и MYR. И если ты собираешься мое одно из этих монет с 290 (у меня есть полдюжины 290s), Лялька, безусловно, лучше для этого алгоритма конкретного графического процессора. Видеть Больше подробностей.

depboy сейчас офлайн Пожаловаться на depboy   Ответить с цитированием Мультицитирование сообщения от depboy Быстрый ответ на сообщение depboy

18 октября 2015, 11:27:58 AM   # 8
 
 
Сообщения: 1193
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

33 Mh / с на складе 7970.

lucazane сейчас офлайн Пожаловаться на lucazane   Ответить с цитированием Мультицитирование сообщения от lucazane Быстрый ответ на сообщение lucazane

18 октября 2015, 12:38:01 PM   # 9
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Хорошая работа!

Тем не менее мое частное ядро ​​MYR-groestl быстрее: 35 Mh / s на 280x и 63 Mh / s на 290x 😉
Я думаю, что версия 280x может быть дополнительно улучшена.
Pallas сейчас офлайн Пожаловаться на Pallas   Ответить с цитированием Мультицитирование сообщения от Pallas Быстрый ответ на сообщение Pallas

18 октября 2015, 6:33:06 PM   # 10
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

33 Mh / с на складе 7970.

Какая ОС и драйвера вы используете?
ph4nt0m сейчас офлайн Пожаловаться на ph4nt0m   Ответить с цитированием Мультицитирование сообщения от ph4nt0m Быстрый ответ на сообщение ph4nt0m

18 октября 2015, 6:40:54 PM   # 11
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Я вижу, что вы получили лежачий полицейский, применяя пару трюков из моего groestlcoin / алмаз с открытым исходным кодом ядра (использование повернутого T0 для ввода в локальный баран, другой код байт-экстракт), но это другой зверь из-за дополнительным SHA раунда , Только часть этого знания может быть применена успешно в этом случае. Нарушив совместимость с фондовой шахтерой вы получили гораздо больше возможностей для оптимизации.
Остерегайтесь этого байт-кода экстракте, хотя: она отлично работает только на некоторых версиях драйверов.

EDIT: и локальная баран инициализация работает только на worksize 256, который, как правило, не является оптимальным.
Pallas сейчас офлайн Пожаловаться на Pallas   Ответить с цитированием Мультицитирование сообщения от Pallas Быстрый ответ на сообщение Pallas

18 октября 2015, 8:47:20 PM   # 12
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Я вижу, что вы получили лежачий полицейский, применяя пару трюков из моего groestlcoin / алмаз с открытым исходным кодом ядра (использование повернутого T0 для ввода в локальный баран, другой код байт-экстракт), но это другой зверь из-за дополнительным SHA раунда , Только часть этого знания может быть применена успешно в этом случае. Нарушив совместимость с фондовой шахтерой вы получили гораздо больше возможностей для оптимизации.
Остерегайтесь этого байт-кода экстракте, хотя: она отлично работает только на некоторых версиях драйверов.

EDIT: и локальная баран инициализация работает только на worksize 256, который, как правило, не является оптимальным.

Повернутый T0 очевидный трюк. Это уменьшает размер ядра значительно без заметной потери производительности. Поворот и копирование с постоянной в локальную память о столь же быстро, как просто скопировать на Radeon. Я не видел никаких проблем с байтовой добычей на 12,8 до 14,6 водителей, не уверены, 15.x из них. Пробовал разные размеры работы быстро, не видят реальное улучшения, так что я даже не стал ставить работы вокруг них, как закомментированная часть в вашем Groestl ядре. Также попробовал полное и частичное разворачивание петли для ROUND_BIG, не повезло еще раз. Я вижу, что вы изменили ROUND_BIG макросов использовать более 8й временное пространство и РБТТАМ делать прямые записи. Это имеет смысл в вашем случае, однако в шахте это примерно то же самое или медленнее немного. Некоторые старые карты имеют проблемы при выделении дополнительных 7 * 128 = 896 байт частного пространства в поток. Я думаю, что это SHA-256 часть, которая имеет производительность вниз. Нуждается в векторизации.
ghostlander сейчас офлайн Пожаловаться на ghostlander   Ответить с цитированием Мультицитирование сообщения от ghostlander Быстрый ответ на сообщение ghostlander

21 октября 2015, 10:19:32 PM   # 13
 
 
Сообщений: 91
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Я вижу, что вы получили лежачий полицейский, применяя пару трюков из моего groestlcoin / алмаз с открытым исходным кодом ядра (использование повернутого T0 для ввода в локальный баран, другой код байт-экстракт), но это другой зверь из-за дополнительным SHA раунда , Только часть этого знания может быть применена успешно в этом случае. Нарушив совместимость с фондовой шахтерой вы получили гораздо больше возможностей для оптимизации.
Остерегайтесь этого байт-кода экстракте, хотя: она отлично работает только на некоторых версиях драйверов.

EDIT: и локальная баран инициализация работает только на worksize 256, который, как правило, не является оптимальным.

Повернутый T0 очевидный трюк. Это уменьшает размер ядра значительно без заметной потери производительности. Поворот и копирование с постоянной в локальную память о столь же быстро, как просто скопировать на Radeon. Я не видел никаких проблем с байтовой добычей на 12,8 до 14,6 водителей, не уверены, 15.x из них. Пробовал разные размеры работы быстро, не видят реальное улучшения, так что я даже не стал ставить работы вокруг них, как закомментированная часть в вашем Groestl ядре. Также попробовал полное и частичное разворачивание петли для ROUND_BIG, не повезло еще раз. Я вижу, что вы изменили ROUND_BIG макросов использовать более 8й временное пространство и РБТТАМ делать прямые записи. Это имеет смысл в вашем случае, однако в шахте это примерно то же самое или медленнее немного. Некоторые старые карты имеют проблемы при выделении дополнительных 7 * 128 = 896 байт частного пространства в поток. Я думаю, что это SHA-256 часть, которая имеет производительность вниз. Нуждается в векторизации.


280x w7-64, катализатор 15.7 ~ 33 Мн / с
работы размер должен быть 256, в противном случае возникают ошибки HW.
drr0ss сейчас офлайн Пожаловаться на drr0ss   Ответить с цитированием Мультицитирование сообщения от drr0ss Быстрый ответ на сообщение drr0ss

22 октября 2015, 7:55:54 AM   # 14
 
 
Сообщений: 40
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Какие монеты вы используете Myriad-Groestl помоему?
Laketear сейчас офлайн Пожаловаться на Laketear   Ответить с цитированием Мультицитирование сообщения от Laketear Быстрый ответ на сообщение Laketear

22 октября 2015, 8:51:44 AM   # 15
 
 
Сообщений: 96
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Какие монеты вы используете Myriad-Groestl помоему?
Там есть :
- Saffroncoin
- Digibyte
- Myriadcoin
MinersPoolEU сейчас офлайн Пожаловаться на MinersPoolEU   Ответить с цитированием Мультицитирование сообщения от MinersPoolEU Быстрый ответ на сообщение MinersPoolEU

22 октября 2015, 6:40:12 PM   # 16
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Добавлена ​​поддержка размеров работы 64 и 128. 1-ый делит пополам производительность на Таити, то второй один добавляет + 2% есть в моем случае. YMMV

Один пожертвование 2179 DGB получили к этому моменту. Давайте шахтер, быть щедрым!
ghostlander сейчас офлайн Пожаловаться на ghostlander   Ответить с цитированием Мультицитирование сообщения от ghostlander Быстрый ответ на сообщение ghostlander

22 октября 2015, 10:18:43 PM   # 17
 
 
Сообщений: 91
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Добавлена ​​поддержка размеров работы 64 и 128. 1-ый делит пополам производительность на Таити, то второй один добавляет + 2% есть в моем случае. YMMV

Один пожертвование 2179 DGB получили к этому моменту. Давайте шахтер, быть щедрым!


На 280x -w 64 по-прежнему возникают ошибки HW, 128 нормально.
drr0ss сейчас офлайн Пожаловаться на drr0ss   Ответить с цитированием Мультицитирование сообщения от drr0ss Быстрый ответ на сообщение drr0ss

23 октября 2015, 7:48:05 AM   # 18
 
 
Сообщений: 33
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

спасибо за вашу работу, отправит доход на сегодняшний день в ДГБ к вам. Я поставил memclock до 150 МГц, когда это возможно, UNDERVOLT ядро ​​и наслаждаться экономии энергии
mkrypt сейчас офлайн Пожаловаться на mkrypt   Ответить с цитированием Мультицитирование сообщения от mkrypt Быстрый ответ на сообщение mkrypt

23 октября 2015, 8:08:31 AM   # 19
 
 
Сообщения: 812
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Большое спасибо за вашу работу.
wildduck сейчас офлайн Пожаловаться на wildduck   Ответить с цитированием Мультицитирование сообщения от wildduck Быстрый ответ на сообщение wildduck

23 октября 2015, 8:16:32 AM   # 20
 
 
Сообщения: 1512
Цитировать по имени
цитировать ответ
по умолчанию Re: OpenCL ядра для Myriad-Groestl (ДГБ, MYR и т.д.)

Вместо того, чтобы использовать "Элиф"Просто использовать простой независимый "если" заявления и удалить инструкции DUP-трех экземплярах.
или, лучше, сделать развернутую петлю.
таким образом это намного более компактный и легкий для отладки.
Pallas сейчас офлайн Пожаловаться на Pallas   Ответить с цитированием Мультицитирование сообщения от Pallas Быстрый ответ на сообщение Pallas



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW