Bitcoin Forum
December 13, 2017, 07:43:21 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 »
  Print  
Author Topic: Gateless Gate Sharp 1.1.4: zawawa's open-source dual ETH/XMR/PASC/LBC miner  (Read 163634 times)
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 21, 2017, 09:28:41 PM
 #681

sp_ has reportedly achieved 530 sols@OC1070 on zcash on his miner. 15+% more over EWBF(Claymore?) which is amazing.

Makes me wonder if I should rewrite the kernel in the GCN assembly from scratch.
I don't know about his personality, but he surely is pretty good at what he is doing.
It seems that some other people are making jokes of him and posting different miners saying that its SP_mod. I dont really get it all, but it seems that he has some miner, that is faster than ewbf, but probably not 530 sols. Sorry for the mystification Smiley

Bwahahaha!

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
1513151001
Hero Member
*
Offline Offline

Posts: 1513151001

View Profile Personal Message (Offline)

Ignore
1513151001
Reply with quote  #2

1513151001
Report to moderator
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 21, 2017, 09:33:21 PM
 #682

All the joking aside, I was able to run SA's kernel with alloca promotion enabled with the following modifications:

Code:
static bool isCallPromotable(CallInst *CI) {
  IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
  if (!II)
    return false;

  switch (II->getIntrinsicID()) {
  case Intrinsic::memcpy:
  case Intrinsic::memmove:
  case Intrinsic::memset:
  case Intrinsic::objectsize:
  case Intrinsic::invariant_group_barrier:
  case Intrinsic::invariant_start:
  case Intrinsic::invariant_end:
    return true;
  
  default:
  case Intrinsic::lifetime_start: // zawawa
  case Intrinsic::lifetime_end: // zawawa
    return false;
  }
}

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 21, 2017, 09:56:52 PM
 #683

Code:
    case Intrinsic::invariant_start:
    case Intrinsic::invariant_end:
    case Intrinsic::invariant_group_barrier:
      Intr->eraseFromParent();
      // FIXME: I think the invariant marker should still theoretically apply,
      // but the intrinsics need to be changed to accept pointers with any
      // address space.
      continue;
...I have a bad feeling now. Why is this code so incomplete?

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 21, 2017, 10:07:44 PM
 #684

God grief, they are not checking GCN address spaces at all!
This is unreal...

Code:
bool llvm::isAllocaPromotable(const AllocaInst *AI) {
  // FIXME: If the memory unit is of pointer or integer type, we can permit
  // assignments to subsections of the memory unit.
  unsigned AS = AI->getType()->getAddressSpace();

  // Only allow direct and non-volatile loads and stores...
  for (const User *U : AI->users()) {
    if (const LoadInst *LI = dyn_cast<LoadInst>(U)) {
      // Note that atomic loads can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (LI->isVolatile())
        return false;
    } else if (const StoreInst *SI = dyn_cast<StoreInst>(U)) {
      if (SI->getOperand(0) == AI)
        return false; // Don't allow a store OF the AI, only INTO the AI.
      // Note that atomic stores can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (SI->isVolatile())
        return false;
    } else if (const IntrinsicInst *II = dyn_cast<IntrinsicInst>(U)) {
      if (II->getIntrinsicID() != Intrinsic::lifetime_start &&
          II->getIntrinsicID() != Intrinsic::lifetime_end)
        return false;
    } else if (const BitCastInst *BCI = dyn_cast<BitCastInst>(U)) {
      if (BCI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!onlyUsedByLifetimeMarkers(BCI))
        return false;
    } else if (const GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(U)) {
      if (GEPI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!GEPI->hasAllZeroIndices())
        return false;
      if (!onlyUsedByLifetimeMarkers(GEPI))
        return false;
    } else {
      return false;
    }
  }

  return true;
}

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
chrysophylax
Legendary
*
Offline Offline

Activity: 980


--- ChainWorks Industries ---


View Profile WWW
February 21, 2017, 10:28:47 PM
 #685

God grief, they are not checking GCN address spaces at all!
This is unreal...

Code:
bool llvm::isAllocaPromotable(const AllocaInst *AI) {
  // FIXME: If the memory unit is of pointer or integer type, we can permit
  // assignments to subsections of the memory unit.
  unsigned AS = AI->getType()->getAddressSpace();

  // Only allow direct and non-volatile loads and stores...
  for (const User *U : AI->users()) {
    if (const LoadInst *LI = dyn_cast<LoadInst>(U)) {
      // Note that atomic loads can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (LI->isVolatile())
        return false;
    } else if (const StoreInst *SI = dyn_cast<StoreInst>(U)) {
      if (SI->getOperand(0) == AI)
        return false; // Don't allow a store OF the AI, only INTO the AI.
      // Note that atomic stores can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (SI->isVolatile())
        return false;
    } else if (const IntrinsicInst *II = dyn_cast<IntrinsicInst>(U)) {
      if (II->getIntrinsicID() != Intrinsic::lifetime_start &&
          II->getIntrinsicID() != Intrinsic::lifetime_end)
        return false;
    } else if (const BitCastInst *BCI = dyn_cast<BitCastInst>(U)) {
      if (BCI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!onlyUsedByLifetimeMarkers(BCI))
        return false;
    } else if (const GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(U)) {
      if (GEPI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!GEPI->hasAllZeroIndices())
        return false;
      if (!onlyUsedByLifetimeMarkers(GEPI))
        return false;
    } else {
      return false;
    }
  }

  return true;
}

hehehe ...

now this is the sign of a good coder ...

Wink ...

#crysx

grn - Gfz2cXMkhMZYWSFvLEMnM8bXk7X5Mtq2J2 . exchange - https://www.cryptopia.co.nz/Exchange/?market=GRN_BTC . cwi thread - https://bitcointalk.org/index.php?topic=1563601 . email - crysx@gnxs.com .
nerdralph
Sr. Member
****
Offline Offline

Activity: 406


View Profile
February 21, 2017, 11:14:49 PM
 #686

God grief, they are not checking GCN address spaces at all!
This is unreal...

Code:
bool llvm::isAllocaPromotable(const AllocaInst *AI) {
  // FIXME: If the memory unit is of pointer or integer type, we can permit
  // assignments to subsections of the memory unit.
  unsigned AS = AI->getType()->getAddressSpace();

  // Only allow direct and non-volatile loads and stores...
  for (const User *U : AI->users()) {
    if (const LoadInst *LI = dyn_cast<LoadInst>(U)) {
      // Note that atomic loads can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (LI->isVolatile())
        return false;
    } else if (const StoreInst *SI = dyn_cast<StoreInst>(U)) {
      if (SI->getOperand(0) == AI)
        return false; // Don't allow a store OF the AI, only INTO the AI.
      // Note that atomic stores can be transformed; atomic semantics do
      // not have any meaning for a local alloca.
      if (SI->isVolatile())
        return false;
    } else if (const IntrinsicInst *II = dyn_cast<IntrinsicInst>(U)) {
      if (II->getIntrinsicID() != Intrinsic::lifetime_start &&
          II->getIntrinsicID() != Intrinsic::lifetime_end)
        return false;
    } else if (const BitCastInst *BCI = dyn_cast<BitCastInst>(U)) {
      if (BCI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!onlyUsedByLifetimeMarkers(BCI))
        return false;
    } else if (const GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(U)) {
      if (GEPI->getType() != Type::getInt8PtrTy(U->getContext(), AS))
        return false;
      if (!GEPI->hasAllZeroIndices())
        return false;
      if (!onlyUsedByLifetimeMarkers(GEPI))
        return false;
    } else {
      return false;
    }
  }

  return true;
}

Well, the memory addressing is strange, at least for someone used to C/C++ and assembler.  I wish all GCN devices supported flat addressing, but alas we still have to deal with the memory buffer structures.
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 22, 2017, 03:41:45 AM
 #687

There seems to be a problem with LLVM's loop optimizations, so I am disabling them in PassBuilder.cpp.
LLVM may be buggy, but it is fun to play with!

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 22, 2017, 04:08:53 AM
 #688

The second to last Equihash kernel is almost working with occasional invalid solutions. Pretty close!

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
zawawa
Sr. Member
****
Offline Offline

Activity: 420


Miner Developer


View Profile
February 22, 2017, 08:26:12 AM
 #689

I am almost done. 11 out of 12 Equihash kernels work flawlessly.
GCN support of LLVM is incredibly buggy, but I can at least fix them now!

Gateless Gate Sharp, an open-source ETH/XMR miner: http://bit.ly/2rJ2x4V
BTC: 1BHwDWVerUTiKxhHPf2ubqKKiBMiKQGomZ
ColMachoman
Newbie
*
Offline Offline

Activity: 5


View Profile
February 22, 2017, 10:10:00 AM
 #690

Hello, I try use for mine ETH. Several pool show very low shares and hashrate, but Gateless Gate show normal rates, why? please check it.
For example:
nanopool - 20MH / 8 shares, but miner - 77MH / 40 shares,
https://file-up.net/big_d2d324a7e53bdea28d20170222110801.html
https://file-up.net/big_e4fe952129b7ca04bb20170222110854.html
m1n1ngP4d4w4n
Full Member
***
Offline Offline

Activity: 154

CryptoLearner


View Profile
February 22, 2017, 10:23:07 AM
 #691

Hello, I try use for mine ETH. Several pool show very low shares and hashrate, but Gateless Gate show normal rates, why? please check it.
For example:
nanopool - 20MH / 8 shares, but miner - 77MH / 40 shares,




You need to let it run for a longer time to get a true average number on pools. (6-12h at least)

BTC - 1B1RBYkzxiTmrbnFe2vj8EaNPSYftW8186 for tips Wink
ColMachoman
Newbie
*
Offline Offline

Activity: 5


View Profile
February 22, 2017, 10:27:31 AM
 #692

Hello, I try use for mine ETH. Several pool show very low shares and hashrate, but Gateless Gate show normal rates, why? please check it.
For example:
nanopool - 20MH / 8 shares, but miner - 77MH / 40 shares,
https://file-up.net/big_d2d324a7e53bdea28d20170222110801.html
https://file-up.net/big_e4fe952129b7ca04bb20170222110854.html


You need to let it run for a longer time to get a true average number on pools. (6-12h at least)

ok, thank you, I will try..
ColMachoman
Newbie
*
Offline Offline

Activity: 5


View Profile
February 22, 2017, 03:21:16 PM
 #693

Hello, I try use for mine ETH. Several pool show very low shares and hashrate, but Gateless Gate show normal rates, why? please check it.
For example:
nanopool - 20MH / 8 shares, but miner - 77MH / 40 shares,
https://file-up.net/big_d2d324a7e53bdea28d20170222110801.html
https://file-up.net/big_e4fe952129b7ca04bb20170222110854.html


You need to let it run for a longer time to get a true average number on pools. (6-12h at least)

ok, thank you, I will try..

I waited about 6h, but same result for 2x rx480 8g + 1x rx470 8g:

gatelessgate 0.1.3-pre1 - Started: [2017-02-22 04:20:59] - [0 days 05:56:53]
--------------------------------------------------------------------------------
(5s):81.03M (avg):77.58Mh/s | A:371000000000  R:0  HW:145  WU:18.912/m
ST: 2  SS: 0  NB: 1510  LW: 39099  GF: 1  RF: 0
Connected to eth-eu1.nanopool.org (stratum) diff 5G as user 0x5...
Block: 3fe832b0...  Diff:0  Started: [10:17:33]  Best share: 791G
--------------------------------------------------------------------------------
[P]ool management [G]PU management Settings [D]isplay options [Q]uit
GPU 0:                | 26.93M/27.02Mh/s | R:  0.0% HW:44 WU:6.465/m xI:4620
GPU 1:                | 23.39M/23.38Mh/s | R:  0.0% HW:47 WU:5.815/m xI:4620
GPU 2:                | 27.23M/27.19Mh/s | R:  0.0% HW:54 WU:6.633/m xI:4620


but info from pool:

Current Calculated Hashrate
17.0 Mh/s
Average Hashrate
for last 6 hours
16.5 Mh/s
Last Reported Hashrate
0.0 Mh/s

    Shares
Date   Amount
Current hour   3
Feb 22nd 09:59:59 (12 minutes ago)   12
Feb 22nd 08:59:59 (an hour ago)   10
Feb 22nd 07:59:59 (2 hours ago)   15
Feb 22nd 06:59:59 (3 hours ago)   10
Feb 22nd 05:59:59 (4 hours ago)   12
Feb 22nd 04:59:59 (5 hours ago)   8

and from another pool too.
Have any idea?
m1n1ngP4d4w4n
Full Member
***
Offline Offline

Activity: 154

CryptoLearner


View Profile
February 22, 2017, 03:37:05 PM
 #694

Nope no ideas then, you don't see alot of rejects  ?

BTC - 1B1RBYkzxiTmrbnFe2vj8EaNPSYftW8186 for tips Wink
ColMachoman
Newbie
*
Offline Offline

Activity: 5


View Profile
February 22, 2017, 03:43:36 PM
 #695

Nope no ideas then, you don't see alot of rejects  ?
Yes, rejects for ETH I do not have anywhere.
Does anyone use Gatelessgate for mining ETH?
cryptominer420
Full Member
***
Offline Offline

Activity: 183


View Profile
February 22, 2017, 03:46:39 PM
 #696

I use gateless for ZEC and Pasc only as there are a ton of eth and XMR miners.

BTC: 1Eeb9SoBeY7AQjjFn7YMJZMY7Jtw5gxxHs  ETH: 0x68e4EA3b7e60C8D6fC9BA92775ccE27Ca542D114
ColMachoman
Newbie
*
Offline Offline

Activity: 5


View Profile
February 22, 2017, 03:57:46 PM
 #697

I use gateless for ZEC and Pasc only as there are a ton of eth and XMR miners.
I try gateless for ZEC, work normal, little low hash then Claymore.
But I very wont use gateless for ETH now.
cryptominer420
Full Member
***
Offline Offline

Activity: 183


View Profile
February 22, 2017, 04:02:00 PM
 #698

Yea, from my testing Gateless gets very close to claymore when you compare poolside.

BTC: 1Eeb9SoBeY7AQjjFn7YMJZMY7Jtw5gxxHs  ETH: 0x68e4EA3b7e60C8D6fC9BA92775ccE27Ca542D114
twan69666
Jr. Member
*
Offline Offline

Activity: 43


View Profile
February 22, 2017, 04:54:02 PM
 #699

I use gateless for ZEC and Pasc only as there are a ton of eth and XMR miners.
I try gateless for ZEC, work normal, little low hash then Claymore.
But I very wont use gateless for ETH now.

FYI - I had the same problems with ETH. Lots of hardware errors regardless of what clock speed my gpu was at.

I just chalked it up to ETH not being ready for this yet. Both XMR and ZEC work great though
jstefanop
Hero Member
*****
Offline Offline

Activity: 848


View Profile
February 22, 2017, 06:04:57 PM
 #700

I am almost done. 11 out of 12 Equihash kernels work flawlessly.
GCN support of LLVM is incredibly buggy, but I can at least fix them now!

Are you seeing any speeds ups from using LLVM vs stock compiler?

www.AriseChickun.com 0% fee segwit signaling Litecoin Pool!
FutureBit Moonlander 2 USB Scrypt Stick Miner: https://bitcointalk.org/index.php?topic=2125643.0
LTC:LX5vpxrQE4eLRLPobKwZhw2comkKFCh3p4 - BTC:14w9Lea6kdVzspJk8TQRe7qSYu9LhzJJsh
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!