utahjohn
|
|
March 29, 2016, 06:31:35 AM Last edit: March 29, 2016, 02:21:00 PM by utahjohn |
|
@devs I found a cpp source for scrypt_core() I put it in scrypt_mine.cpp #if defined(__aarch64__) static inline void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) { uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; int i;
x00 = (B[ 0] ^= Bx[ 0]); x01 = (B[ 1] ^= Bx[ 1]); x02 = (B[ 2] ^= Bx[ 2]); x03 = (B[ 3] ^= Bx[ 3]); x04 = (B[ 4] ^= Bx[ 4]); x05 = (B[ 5] ^= Bx[ 5]); x06 = (B[ 6] ^= Bx[ 6]); x07 = (B[ 7] ^= Bx[ 7]); x08 = (B[ 8] ^= Bx[ 8]); x09 = (B[ 9] ^= Bx[ 9]); x10 = (B[10] ^= Bx[10]); x11 = (B[11] ^= Bx[11]); x12 = (B[12] ^= Bx[12]); x13 = (B[13] ^= Bx[13]); x14 = (B[14] ^= Bx[14]); x15 = (B[15] ^= Bx[15]); for (i = 0; i < 8; i += 2) { #define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) /* Operate on columns. */ x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); /* Operate on rows. */ x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); #undef R } B[ 0] += x00; B[ 1] += x01; B[ 2] += x02; B[ 3] += x03; B[ 4] += x04; B[ 5] += x05; B[ 6] += x06; B[ 7] += x07; B[ 8] += x08; B[ 9] += x09; B[10] += x10; B[11] += x11; B[12] += x12; B[13] += x13; B[14] += x14; B[15] += x15; }
static inline void scrypt_core(uint32_t *X, uint32_t *V) { uint32_t i, j, k; int n=1024;
for (i = 0; i < n; i++) { memcpy(&V[i * 32], X, 128); xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } for (i = 0; i < n; i++) { j = 32 * (X[16] & (n - 1)); for (k = 0; k < 32; k++) X[k] ^= V[j + k]; xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } } #endif
Code compiles ... and syncing using ~ 190% cpu on a quad core 64 bit. Synced up cpu use dropped to about 30% is that about normal on a linux build? compiling with -O3 and see if that makes a difference ... top - 05:46:50 up 4:30, 3 users, load average: 0.27, 0.36, 0.65 Tasks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.2 us, 0.6 sy, 7.0 ni, 92.2 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 1760360 total, 932260 used, 828100 free, 4112 buffers KiB Swap: 2047996 total, 128036 used, 1919960 free. 112292 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2362 odroid 20 0 1443020 627508 9444 S 29.9 35.6 56:20.24 diamond-qt-O3
Swap barely got touched with all the compiling I've been doing ... probably never touch it after a reboot. Disk usage odroid@odroid64:~$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p2 29940700 3873036 26049272 13% / udev 10240 0 10240 0% /dev tmpfs 352072 11624 340448 4% /run tmpfs 880180 80 880100 1% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 880180 0 880180 0% /sys/fs/cgroup /dev/mmcblk0p1 130796 16394 114402 13% /media/boot /dev/mmcblk1p2 28528640 2856728 24199656 11% /home tmpfs 176036 4 176032 1% /run/user/115 tmpfs 176036 16 176020 1% /run/user/1000 tmpfs 176036 0 176036 0% /run/user/0
|
|
|
|
Ayers
Legendary
Offline
Activity: 2814
Merit: 1024
DGbet.fun - Crypto Sportsbook
|
|
March 29, 2016, 06:41:31 AM |
|
can i ask how much a 970 can do with this algo? is it profitable?
|
|
|
|
BogdanCo
|
|
March 29, 2016, 07:40:14 AM |
|
can i ask how much a 970 can do with this algo? is it profitable?
You want to mine -groestl algo with a Geforce 970? It's not profitable... But you can use the miner from nicehash, mine a more profitable algo suited for your card and get payouts in DMD thru multipool...
|
|
|
|
BogdanCo
|
|
March 29, 2016, 07:45:09 AM |
|
Here is a short guide: there is people asking us how dmd cloudmining can generate payouts even if nearly all but the newest generation of mining gear is running unprofitable this days
the answer is easy DMD Cloudmining dynamic place and shift value between different kind of payout generating crypto investments and that not only cloudmining hashrate its also staking coins and crypto lending and similar investment
and addtional we have the regulary DMD reaktor payout that give sweet bonus payouts to DMD cloudmining shareholders -------------------------------- DMD MULTIPOOL / DMD CLOUDMINING Visit us: cloudmining.bit.diamonds
redistributed over 217000 DMD! between its users! yes thats close to 15% of total coins!--------------------- --------------------------------------------------------- ROI Boost enabled now: All accounts who didnt reach ROI 100% will be boosted with x5 sharepower! -------------------------------------------------------- (https://cloudmining.bit.diamonds/ log in with DMD Address and activate settings area to enable buy shares mode)
NO Electricity Bills NO Maintenance NO Heat NO Noise NO Timesink NO Complicated technology NO Quickly decreasing mining rewards
Join DMD Cloudmining -> EARN DMD EACH DAY! YES!
(additional DMD Cloudmining shares qualify for DMD Reactor payouts!
Visit us: cloudmining.bit.diamonds terms & conditions Terms of Service for questions Email us: cloud@bit.diamonds What's the best way join into DMD Diamond and DMD Cloudmining?
I suggest split it as follows:
a) 50% on buying Diamonds directly b) 50% in Diamond Cloud Mining.
This way I could achieve both maximizing the profit and stabilizing the coin. Diamond Cloud Mining can earn Diamonds every day, those Diamonds stake with 50% PoS interest. Some would call that Double PoS or simply PoS² (Proof of Shares and Proof of Stake).Step by Step guide how to buy shares is at FAQ section on https://cloudmining.bit.diamonds/I am not a Registered Investment Advisor, Broker/Dealer, Financial Analyst, Financial Bank, Securities Broker or Financial Planner. The Information is provided for information purposes only. The Information is not intended to be and does not constitute financial advice or any other advice, is general in nature and not specific to you. Before using this information to make an investment decision, you should seek the advice of a qualified and registered securities professional and undertake your own due diligence. None of the information is intended as investment advice, as an offer or solicitation of an offer to buy or sell, or as a recommendation, endorsement, or sponsorship of any security, Company, or fund. DMD Diamond is not a regulated investment vehicle. DMD Diamond, like all crypto currencies, is experimental in nature and should be considered and treated with appropriate caution. There is no central point of control or representative entity, DMD Diamond is a distributed decentralized peer-to-peer currency and commodity. Consult a licensed professional financial advisor before making any investment decisions. I am not responsible for any investment decision made by you. You are responsible for your own investment research and investment decisions.-------------- -------------- Just in case someone missed this now DMD Multipool mining become easy for everyone! Working on Nvidia AND AMD based cards!
|
|
|
|
Ayers
Legendary
Offline
Activity: 2814
Merit: 1024
DGbet.fun - Crypto Sportsbook
|
|
March 29, 2016, 08:01:03 AM |
|
can i ask how much a 970 can do with this algo? is it profitable?
You want to mine -groestl algo with a Geforce 970? It's not profitable... But you can use the miner from nicehash, mine a more profitable algo suited for your card and get payouts in DMD thru multipool... i've tried and it's actually profitable, not on par with etheruem, but there is profit, you can earn at present, 0.005 with a single 970, each day
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 29, 2016, 01:40:31 PM |
|
nicehash did merge together mining stats from nicehash and westhash so now https://multipool.bit.diamonds/ show merged stats now too still missing is that we add visible stats for other algos on our website we will do that in one of next updates for the DMD payout that doesnt matter because the DMD u recieve just deepend on the arriving BTC so if we track stats or not doesnt matter its more a cosmetically issue to have stats visible that represent the true miningpower of our userbase
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 29, 2016, 09:30:15 PM Last edit: March 29, 2016, 10:25:44 PM by cryptonit |
|
great stuff is happening in background while we still working to get wallet 2.1 released we already have setup a plan for DMD 3.0 wallet and it will be mind-blowing trust me that will be the moment everyone know again why we carry "evolution" in our thread title!
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 29, 2016, 11:08:49 PM |
|
i just want to inform u that groestlcoin DMD Diamond merged mining is removed from DMD 2.1 wallet content
this happens because the roadmap to DMD 3.0 move in a direction that make this obsolete
|
|
|
|
utahjohn
|
|
March 30, 2016, 05:20:46 AM Last edit: March 30, 2016, 06:14:41 AM by utahjohn |
|
Can anyone can translate to NEON instructions in C? https://community.arm.com/groups/android-community/blog/2015/03/27/arm-neon-programming-quick-referenceI put it in scrypt_mine.cpp to run DMD wallet, it is far from optimized and ARMv8 supports NEON. #if defined(__aarch64__) static inline void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) { uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; int i;
x00 = (B[ 0] ^= Bx[ 0]); x01 = (B[ 1] ^= Bx[ 1]); x02 = (B[ 2] ^= Bx[ 2]); x03 = (B[ 3] ^= Bx[ 3]); x04 = (B[ 4] ^= Bx[ 4]); x05 = (B[ 5] ^= Bx[ 5]); x06 = (B[ 6] ^= Bx[ 6]); x07 = (B[ 7] ^= Bx[ 7]); x08 = (B[ 8] ^= Bx[ 8]); x09 = (B[ 9] ^= Bx[ 9]); x10 = (B[10] ^= Bx[10]); x11 = (B[11] ^= Bx[11]); x12 = (B[12] ^= Bx[12]); x13 = (B[13] ^= Bx[13]); x14 = (B[14] ^= Bx[14]); x15 = (B[15] ^= Bx[15]); for (i = 0; i < 8; i += 2) { #define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) /* Operate on columns. */ x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); /* Operate on rows. */ x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); #undef R } B[ 0] += x00; B[ 1] += x01; B[ 2] += x02; B[ 3] += x03; B[ 4] += x04; B[ 5] += x05; B[ 6] += x06; B[ 7] += x07; B[ 8] += x08; B[ 9] += x09; B[10] += x10; B[11] += x11; B[12] += x12; B[13] += x13; B[14] += x14; B[15] += x15; }
static inline void scrypt_core(uint32_t *X, uint32_t *V) { uint32_t i, j, k; int n=1024;
for (i = 0; i < n; i++) { memcpy(&V[i * 32], X, 128); xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } for (i = 0; i < n; i++) { j = 32 * (X[16] & (n - 1)); for (k = 0; k < 32; k++) X[k] ^= V[j + k]; xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } } #endif
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 30, 2016, 02:18:28 PM Last edit: March 30, 2016, 05:52:59 PM by cryptonit |
|
as pump defence place some sellorders between 0.00090 and 0.00125 else we might see a price spike....... our liquidity suffer if not enough DMD available to be bought YES thats DMD here we try to avoid pumps not many coins even aware that liquidity not only means coins can be sold without big drop price liquidity also means coins can be bought without raise the price to much
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 30, 2016, 07:48:52 PM |
|
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 30, 2016, 07:50:43 PM |
|
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 30, 2016, 07:57:22 PM |
|
my strongest node have 171 connections so at least that many wallets are simultaneous online i expect it to be more and not all are connected to this node some people run wallet with limit to just 16 connections so there will be many more nodes that didnt connect to me its save to estimate our network to be above 200 24/7 nodes only a handfull coins below the top 10 have a similar strong network
|
|
|
|
cryptonit
Legendary
Offline
Activity: 3052
Merit: 1053
bit.diamonds | uNiq.diamonds
|
|
March 30, 2016, 08:02:00 PM |
|
the amount of coins in hands above the top 100 addresses is constant growing which means we get more and more spread and community grows (few months it was 18% and now its over 26% expected to be soon 1/3 of coins in small investor hands)
|
|
|
|
davembg
Sr. Member
Offline
Activity: 340
Merit: 251
Smell the glove.
|
|
March 30, 2016, 08:23:52 PM |
|
Can anyone can translate to NEON instructions in C? https://community.arm.com/groups/android-community/blog/2015/03/27/arm-neon-programming-quick-referenceI put it in scrypt_mine.cpp to run DMD wallet, it is far from optimized and ARMv8 supports NEON. #if defined(__aarch64__) static inline void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) { uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; int i;
x00 = (B[ 0] ^= Bx[ 0]); x01 = (B[ 1] ^= Bx[ 1]); x02 = (B[ 2] ^= Bx[ 2]); x03 = (B[ 3] ^= Bx[ 3]); x04 = (B[ 4] ^= Bx[ 4]); x05 = (B[ 5] ^= Bx[ 5]); x06 = (B[ 6] ^= Bx[ 6]); x07 = (B[ 7] ^= Bx[ 7]); x08 = (B[ 8] ^= Bx[ 8]); x09 = (B[ 9] ^= Bx[ 9]); x10 = (B[10] ^= Bx[10]); x11 = (B[11] ^= Bx[11]); x12 = (B[12] ^= Bx[12]); x13 = (B[13] ^= Bx[13]); x14 = (B[14] ^= Bx[14]); x15 = (B[15] ^= Bx[15]); for (i = 0; i < 8; i += 2) { #define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) /* Operate on columns. */ x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); /* Operate on rows. */ x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); #undef R } B[ 0] += x00; B[ 1] += x01; B[ 2] += x02; B[ 3] += x03; B[ 4] += x04; B[ 5] += x05; B[ 6] += x06; B[ 7] += x07; B[ 8] += x08; B[ 9] += x09; B[10] += x10; B[11] += x11; B[12] += x12; B[13] += x13; B[14] += x14; B[15] += x15; }
static inline void scrypt_core(uint32_t *X, uint32_t *V) { uint32_t i, j, k; int n=1024;
for (i = 0; i < n; i++) { memcpy(&V[i * 32], X, 128); xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } for (i = 0; i < n; i++) { j = 32 * (X[16] & (n - 1)); for (k = 0; k < 32; k++) X[k] ^= V[j + k]; xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } } #endif
Hey utah - I'd just change your makefile to build that with nasm (if it builds). Otherwise, a good gcc version *should optimize that code for your ARMv8 chip. https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html" The value ‘armv8.1-a’ implies ‘armv8-a’ and enables compiler support for the ARMv8.1 architecture extension. In particular, it enables the ‘+crc’ and ‘+lse’ features. "
|
|
|
|
utahjohn
|
|
March 30, 2016, 09:20:45 PM Last edit: March 31, 2016, 04:35:28 AM by utahjohn |
|
Can anyone can translate to NEON instructions in C? https://community.arm.com/groups/android-community/blog/2015/03/27/arm-neon-programming-quick-referenceI put it in scrypt_mine.cpp to run DMD wallet, it is far from optimized and ARMv8 supports NEON. #if defined(__aarch64__) static inline void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) { uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; int i;
x00 = (B[ 0] ^= Bx[ 0]); x01 = (B[ 1] ^= Bx[ 1]); x02 = (B[ 2] ^= Bx[ 2]); x03 = (B[ 3] ^= Bx[ 3]); x04 = (B[ 4] ^= Bx[ 4]); x05 = (B[ 5] ^= Bx[ 5]); x06 = (B[ 6] ^= Bx[ 6]); x07 = (B[ 7] ^= Bx[ 7]); x08 = (B[ 8] ^= Bx[ 8]); x09 = (B[ 9] ^= Bx[ 9]); x10 = (B[10] ^= Bx[10]); x11 = (B[11] ^= Bx[11]); x12 = (B[12] ^= Bx[12]); x13 = (B[13] ^= Bx[13]); x14 = (B[14] ^= Bx[14]); x15 = (B[15] ^= Bx[15]); for (i = 0; i < 8; i += 2) { #define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) /* Operate on columns. */ x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); /* Operate on rows. */ x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); #undef R } B[ 0] += x00; B[ 1] += x01; B[ 2] += x02; B[ 3] += x03; B[ 4] += x04; B[ 5] += x05; B[ 6] += x06; B[ 7] += x07; B[ 8] += x08; B[ 9] += x09; B[10] += x10; B[11] += x11; B[12] += x12; B[13] += x13; B[14] += x14; B[15] += x15; }
static inline void scrypt_core(uint32_t *X, uint32_t *V) { uint32_t i, j, k; int n=1024;
for (i = 0; i < n; i++) { memcpy(&V[i * 32], X, 128); xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } for (i = 0; i < n; i++) { j = 32 * (X[16] & (n - 1)); for (k = 0; k < 32; k++) X[k] ^= V[j + k]; xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } } #endif
Hey utah - I'd just change your makefile to build that with nasm (if it builds). Otherwise, a good gcc version *should optimize that code for your ARMv8 chip. https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html" The value ‘armv8.1-a’ implies ‘armv8-a’ and enables compiler support for the ARMv8.1 architecture extension. In particular, it enables the ‘+crc’ and ‘+lse’ features. " I'm using gcc 4.9 ... -march=armv8.1-a does not work. Also -mfpu=neon does not work. They both error out compiler and it stops. I am using -Ofast -march=armv8-a+fp+simd+crc -mtune=cortex-a53 -mcpu=cortex-a53 -ftree-vectorize -ffast-math I looked at some generated code and NO NEON instructions were generated. The -DNOSSE flag is NOT needed with aarch64 CPU usage is down to ~25% now compared to ~30% with -DNOSSE @devs A suggestion: have a seperate Makefile for each architecture ... the one in source tree is quite a mess and took days to modify. I have Makefile.linux.aarch64 it's so much cleaner
|
|
|
|
gwinevere
Newbie
Offline
Activity: 364
Merit: 0
|
|
March 31, 2016, 01:39:57 AM |
|
This hybrid model is interesting. I will need to read up on DMD.
|
|
|
|
klarki
Legendary
Offline
Activity: 3430
Merit: 4118
Top Crypto Casino
|
|
March 31, 2016, 01:59:01 AM |
|
And when will the new purse and a road map? Do outs are planned for other exchanges?
|
|
|
|
klintay
Legendary
Offline
Activity: 1775
Merit: 1032
Value will be measured in sats
|
|
March 31, 2016, 10:36:35 AM |
|
It looks like you guys in the thread have already figured it out: someone will need to write a scrypt-aarch64.S file for everything to work smoothly.
Alternatively, I could probably have the wallet fall back to a C++ implementation on unsupported architectures. It would just need to be transparent to the users that their architecture does not perform as well as it might with its own assembly implementation. (That is to say that the performance would be really bad compared to a native solution.)
Speaking of performance hits, though, I'm pretty sure one could the ARM version of QEMU to run a 32-bit binary if you just want to run the wallet on an arm64 board. At least until a more robust solution is found. A guide for setting QEMU up on a Raspberry Pi can be found here, but I'm not sure how well that translates to ODROID's boards. You might have to set up ODROID's boards for virtualization (if they support it) and compile QEMU yourself to get things working.
need scrypt-aarch64.S for it to really be a solution ... scrypt-arm.S is taken from pooler cpuminer ( pooler@litcoinpool.com) and he said: As documented, there is no Aarch64 implementation in cpuminer. I do plan to add one in the future, time allowing.
I'm also working with OKtoshi on ROKOS for aarch64 however he does not have a board yet ... https://bitcointalk.org/index.php?topic=1084908.msg14308714#msg14308714I'll bet DMD foundation would post a bounty for someone to create src/srcypt-aarch64.Shere is src/srcypt-arm.S as a starting point: https://github.com/DMDcoin/Diamond/blob/master/src/scrypt-arm.SWith the release of RPi 3 out and PINE64+ imminent, there is going to be a large demand for aarch64 support. I'm lucky to have got the Odroid C2 board, they are sold-out till mid-April. Specs are quite similar on all Only the Odroid C2 has 2 GHZ though I PM'ed pallas too but have not got a reply, he's into stuff like this I think ... Should PM wolf0 too By the way, who is DMD wallet dev nowadays ... used to be danbi but we don't hear from him much at all ... another review: http://www.jeffgeerling.com/blog/2016/review-odroid-c2-compared-raspberry-pi-3-and-orange-pi-plus@feldenthorn If you can give me example C++ code for maybe I can create aarch64 assembly code from it (I have been looking at several arm 32 bit to aarch64 sites), may not be optimized to the max but just need to get wallet to build for now. Hell of a way to learn LOL. I can probably do a side-by-side C++ to assembly code and later tune it with loop un-rolling etc. u could put C++ fallback code for scrypt_core() in scrypt_mine.cpp, this is where it is used and defined as extern "C". Raspberry Pi 3 is 64 bit and has been released, you can buy it here now: https://bitcointalk.org/index.php?topic=1419675
|
|
|
|
fredeq
Legendary
Offline
Activity: 1537
Merit: 1005
|
|
March 31, 2016, 11:29:20 AM |
|
Is there a way to stake with a locked wallet?
I did the `walletpassphrase xxx seconds true` command, but it says the wallet is unlocked. It should say "Unlocked for staking" right?
|
|
|
|
|