Skip to content
This repository has been archived by the owner on Sep 23, 2023. It is now read-only.

Commit

Permalink
Fix Jackson warnings, make the kernel ~0.5% faster
Browse files Browse the repository at this point in the history
  • Loading branch information
Diablo-D3 committed Jan 20, 2012
1 parent cb22ab3 commit 45a4c7f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 37 deletions.
59 changes: 24 additions & 35 deletions src/main/java/com/diablominer/DiabloMiner/DiabloMiner.java
Expand Up @@ -36,6 +36,8 @@
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Formatter;
import java.util.List;
Expand Down Expand Up @@ -103,7 +105,7 @@ class DiabloMiner {

int forceWorkSize = 0;
int zloops = 1;
int vectors[];
Integer vectors[];
int totalVectors = 0;
boolean vstore = false;

Expand Down Expand Up @@ -226,7 +228,7 @@ void execute(String[] args) throws Exception {
if(line.hasOption("vectors")) {
String tempVectors[] = line.getOptionValue("vectors").split(",");

vectors = new int[tempVectors.length];
vectors = new Integer[tempVectors.length];

try {
for(int i = 0; i < vectors.length; i++) {
Expand All @@ -251,12 +253,14 @@ void execute(String[] args) throws Exception {
error("DiabloMiner does not support more than 16 total vectors yet");
System.exit(-1);
}

Arrays.sort(vectors, Collections.reverseOrder());
} catch(NumberFormatException e) {
error("Cannot parse --vector argument(s)");
System.exit(-1);
}
} else {
vectors = new int[1];
vectors = new Integer[1];
vectors[0] = 1;
totalVectors = 1;
}
Expand Down Expand Up @@ -462,24 +466,6 @@ protected PasswordAuthentication getPasswordAuthentication() {

vectorBase += vectorOffset * vectors[y];
}
} else if(sourceLine.contains("output[")) {
String end = "";

if(vectors[y] > 1) {
for(int i = 0; i < vectors[y]; i++)
end += replace.replace("ZG[2]", "ZG[2].s" + Integer.toHexString(i)).replaceAll("nonce", "nonce.s" + Integer.toHexString(i)) + "\n";
} else {
end += replace;
}

replace = end;
} else if(sourceLine.contains("shuffle")){
if(vectors[y] > 1) {
replace = replace.replaceAll("uint", "uint" + vectors[y]).replaceAll("s0", "s" + Integer.toHexString((vectors[y] - 1)))
.replaceAll("vstore", "vstore" + vectors[y]);
} else {
replace = sourceLines[x + 2];
}
}
} else {
if(replace.contains("global")) {
Expand All @@ -489,12 +475,15 @@ protected PasswordAuthentication getPasswordAuthentication() {
}

if(!array) {
replace = replace.replaceAll("z Z([A-Z])\\[[0-9]\\]", "z Z$10; z Z$11; z Z$12; z Z$13")
replace = replace.replaceAll("zz", String.valueOf(vectors[0]))
.replaceAll("z Z([A-Z])\\[[0-9]\\]", "z Z$10; z Z$11; z Z$12; z Z$13")
.replaceAll("Z([A-Z])\\[([0-9])\\]", "Z$1$2");
}

source += replace.replaceAll("Z", UPPER[y]).replaceAll("z", LOWER[y]) + "\n";
}
} else if(sourceLine.contains("__global")) {
source += sourceLine.replaceAll("uint", "uint" + vectors[0]);
} else {
source += sourceLine + "\n";
}
Expand Down Expand Up @@ -831,11 +820,11 @@ else if(xLongPolling.startsWith("/"))
String oldHost = queryUrl.getHost();
JsonNode newHost = mapper.readTree(xSwitchTo);

queryUrl = new URL(queryUrl.getProtocol(), newHost.get("host").getValueAsText(),
queryUrl = new URL(queryUrl.getProtocol(), newHost.get("host").asText(),
newHost.get("port").getIntValue(), queryUrl.getPath());

if(longPollUrl != null)
longPollUrl = new URL(longPollUrl.getProtocol(), newHost.get("host").getValueAsText(),
longPollUrl = new URL(longPollUrl.getProtocol(), newHost.get("host").asText(),
newHost.get("port").getIntValue(), longPollUrl.getPath());

info(oldHost + ": Switched to " + queryUrl.getHost());
Expand Down Expand Up @@ -917,11 +906,11 @@ else if(connection.getContentEncoding().equalsIgnoreCase("deflate"))

if(responseMessage.get("error") != null) {
if(responseMessage.get("error").get("message") != null &&
responseMessage.get("error").get("message").getValueAsText() != null) {
error = responseMessage.get("error").get("message").getValueAsText().trim();
responseMessage.get("error").get("message").asText() != null) {
error = responseMessage.get("error").get("message").asText().trim();
e2 = new IOException("Bitcoin returned error message: " + error);
} else if(responseMessage.get("error").getValueAsText() != null) {
error = responseMessage.get("error").getValueAsText().trim();
} else if(responseMessage.get("error").asText() != null) {
error = responseMessage.get("error").asText().trim();

if(!"null".equals(error) && !"".equals(error))
e2 = new IOException("Bitcoin returned an error message: " + error);
Expand All @@ -947,11 +936,11 @@ else if(connection.getContentEncoding().equalsIgnoreCase("deflate"))

if(responseMessage.get("error") != null) {
if(responseMessage.get("error").get("message") != null &&
responseMessage.get("error").get("message").getValueAsText() != null) {
String error = responseMessage.get("error").get("message").getValueAsText().trim();
responseMessage.get("error").get("message").asText() != null) {
String error = responseMessage.get("error").get("message").asText().trim();
throw new IOException("Bitcoin returned error message: " + error);
} else if(responseMessage.get("error").getValueAsText() != null) {
String error = responseMessage.get("error").getValueAsText().trim();
} else if(responseMessage.get("error").asText() != null) {
String error = responseMessage.get("error").asText().trim();

if(!"null".equals(error) && !"".equals(error))
throw new IOException("Bitcoin returned error message: " + error);
Expand Down Expand Up @@ -1708,9 +1697,9 @@ void sendWork(int nonce) {
}

void parse(JsonNode responseMessage) {
String datas = responseMessage.get("data").getValueAsText();
String midstates = responseMessage.get("midstate").getValueAsText();
String targets = responseMessage.get("target").getValueAsText();
String datas = responseMessage.get("data").asText();
String midstates = responseMessage.get("midstate").asText();
String targets = responseMessage.get("target").asText();

String parse;

Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/DiabloMiner.cl
Expand Up @@ -550,9 +550,9 @@ __kernel __attribute__((reqd_work_group_size(WORKSIZE, 1, 1))) void search(
ZG[2] = ZG[1] + ZF[1] + ZR26(ZF[2]) + ZCh(ZF[2], ZE[2], ZB[2]) + ZR15(ZD[2]) + ZH[2] + ZR25(ZH[3]) + ZA[3];

#ifdef VSTORE
z Zmask = convert_uint(ZG[2] == 0x136032EDU); z Zshuffle = shuffle(ZG[2], Zmask); if(Zshuffle.s0 == 0x136032EDU) { vstore(Znonce, 0, output); }
if(any(ZG[2] == (z)0x136032EDU)) { vstorezz(Znonce, 0, output); }
#else
if(ZG[2] == 0x136032EDU) { output[Znonce & 0xF] = Znonce; }
if(any(ZG[2] == (z)0x136032EDU)) { output[0] = (uintzz)Znonce; }
#endif
#ifdef DOLOOPS
}
Expand Down

0 comments on commit 45a4c7f

Please sign in to comment.