Bitcoin Forum
March 23, 2019, 07:48:08 AM *
News: Latest Bitcoin Core release: 0.17.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 ... 191 »
  Print  
Author Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner  (Read 419090 times)
g1itch
Member
**
Offline Offline

Activity: 153
Merit: 10


View Profile
March 03, 2017, 07:50:40 AM
 #2181

Why don't you create a branch on github for the legacy 3.4 branch?

1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
Your Bitcoin transactions
The Ultimate Bitcoin mixer
made truly anonymous.
with an advanced technology.
Mix coins
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
1553327288
Hero Member
*
Offline Offline

Posts: 1553327288

View Profile Personal Message (Offline)

Ignore
1553327288
Reply with quote  #2

1553327288
Report to moderator
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 03, 2017, 06:52:06 PM
 #2182

The following post went right over my head at the time. I was a bit distracted with other issues
and didn't realize you were referring to a file in cpuminer-opt.

I presume you were suggesting I update it and you were providing me with a suitable replacement.
I'm not familiar with docker but if it works for you, that's good enough for me. It can't be worse
that what's there now.

But I'm concerned about the first line. It seems to tie it to Ubuntu 16.04. Can it be made generic?

Thanks.

The Dockerfile in the repo is horribly out of date so I created one for my use.

Code:
FROM ubuntu:16.04
RUN BUILD_DEPS="build-essential \
libssl-dev \
libgmp-dev \
automake \
git" && \

apt-get update && \
apt-get install -y ${BUILD_DEPS} libcurl4-openssl-dev libjansson-dev && \
git clone --depth 1 https://github.com/JayDDee/cpuminer-opt.git && \
cd cpuminer-opt && \
./autogen.sh && \
CFLAGS="-O3 -march=native -s -Wall -Wl,--build-id=none" \
CXXFLAGS="$CFLAGS -std=gnu++11 -fpermissive" \
./configure --with-curl --with-crypto && \
make -j $(nproc) && \
make install && \
apt-get remove -y ${BUILD_DEPS} && \
apt-get autoremove -y && \
rm -rf /cpuminer-opt

ENTRYPOINT ["/usr/local/bin/cpuminer"]
CMD ["-h"]

the first line tells docker to use the ubuntu 16.04 image as a baseline to build the image
think of the dockerfile as a recipe on how to setup a machine
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 03, 2017, 07:14:30 PM
 #2183

cpuminer-opt v3.5.12 is released with support for sha256t, 29% faster than ocminer version.

Also renamed lyra2zoin algo to lyra2z330. There is now another coin using this algo.
lyra2zoin and zoin will still work as aliases of lyra2z330.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 03, 2017, 07:22:27 PM
 #2184


the first line tells docker to use the ubuntu 16.04 image as a baseline to build the image
think of the dockerfile as a recipe on how to setup a machine

If I understand correctly this file is not generic and would likely need to be modified before use
unless the default FROM matches the user's intended base. Or is this a hint by the dev (me) that this
is the image I used and is the recommended image?

Edit: I'm asking in the context of including it in the package. Does it belong there or is it someting
specific to each user?

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 03, 2017, 07:56:02 PM
 #2185


the first line tells docker to use the ubuntu 16.04 image as a baseline to build the image
think of the dockerfile as a recipe on how to setup a machine

If I understand correctly this file is not generic and would likely need to be modified before use
unless the default FROM matches the user's intended base. Or is this a hint by the dev (me) that this
is the image I used and is the recommended image?

Edit: I'm asking in the context of including it in the package. Does it belong there or is it someting
specific to each user?

it is generic

what happens when someone builds the image (or even better: you setup automatic builds with docker hub):

- docker will run a leightwight container, which runs the ubuntu 16.04 tools and programs using the host kernel (thus its way faster than VMs as most of the overhead is saved), this step is called the "FROM", it defines a baseline image to be used for this image
- docker will install the neccessary tools to build and run cpuminer-opt defined with the "RUN" command, which will execute them inside this ubuntu container
- docker will then build cpuminer-opt and install it in the containers system paths
- docker will then set the entrypoint to the bin, so every command you append to your docker commandline will get passed to cpuminer-opt bin
- docker will then remove all build deps and execute autoremove for anything else that might be unneeded
- "CMD" tells docker to pass that command if nothing else is supplied by the user when running the docker image later

after this procedure you end up with a docker image where you just run
Code:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [ARG...]

though for docker hub i would change the git pull stuff to just plain "COPY" and remove the apt-get remove steps as the space savings are marginal, additionally id update the build.sh to use nprocs and just use that (no static linking)

everyone can then use this single image, its not specific to one user/system

one problem might exist: currently cpuminer-opt determines cpu capabilities at build time, not runtime, so every system *might* need to rebuild the image for their cpu if it differs from the initially building one

in general docker is used for application delivery, but cpuminer-opt is special because it relies on cpu features at build time
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 03, 2017, 08:16:53 PM
 #2186

Thanks Felix,

That pretty much answered all my questions but raised another. The lack of portability may
be the deal breaker. Is there any advantage to docker considering the issues with cross-compiling
cpuminer-opt? It seems like a feature with limited user appeal, doesn't really seem appropriate
to include it in the package.

I was curious about make -j. I was considering removing the option and using the default but the man
page doesn't say what the default is.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 03, 2017, 11:42:38 PM
 #2187

Thanks Felix,

That pretty much answered all my questions but raised another. The lack of portability may
be the deal breaker. Is there any advantage to docker considering the issues with cross-compiling
cpuminer-opt? It seems like a feature with limited user appeal, doesn't really seem appropriate
to include it in the package.

I was curious about make -j. I was considering removing the option and using the default but the man
page doesn't say what the default is.


well if your host/server is a plain docker host this solution is great (see coreos etc), also if you have access to a large homogeneous docker cluster, this might come in handy as well
the third and maybe last option where it might come in handy is if you prefer your computer with a minimal footprint of tools/dependencies/libs installed and prefer dockerized containers

this only applies to linux (and maybe osx), docker has windows support but im not sure the emulation part (besides win10 "native" ubuntu integration) might be performing equally here (after all it has to run a linux kernel somehow on windows)

a Dockerfile is appropriate directly in the repo, but id change some stuff as mentioned before

regarding -j: if not specified it defaults to 1 (ie make takes longer on multicore systems), if specified without an integer/arg its *unlimited*, else the integer count is the limit for running jobs in parallel


i can submit a PR tomorrow for the Dockerfile with my changes if needed
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 03, 2017, 11:57:13 PM
Last edit: March 04, 2017, 04:54:43 AM by joblo
 #2188

Thanks Felix,

That pretty much answered all my questions but raised another. The lack of portability may
be the deal breaker. Is there any advantage to docker considering the issues with cross-compiling
cpuminer-opt? It seems like a feature with limited user appeal, doesn't really seem appropriate
to include it in the package.

I was curious about make -j. I was considering removing the option and using the default but the man
page doesn't say what the default is.


well if your host/server is a plain docker host this solution is great (see coreos etc), also if you have access to a large homogeneous docker cluster, this might come in handy as well
the third and maybe last option where it might come in handy is if you prefer your computer with a minimal footprint of tools/dependencies/libs installed and prefer dockerized containers

this only applies to linux (and maybe osx), docker has windows support but im not sure the emulation part (besides win10 "native" ubuntu integration) might be performing equally here (after all it has to run a linux kernel somehow on windows)

a Dockerfile is appropriate directly in the repo, but id change some stuff as mentioned before

regarding -j: if not specified it defaults to 1 (ie make takes longer on multicore systems), if specified without an integer/arg its *unlimited*, else the integer count is the limit for running jobs in parallel


i can submit a PR tomorrow for the Dockerfile with my changes if needed

I did some more research on make -j and the default is as you say 1 but only if it's not set in MAKEFLAGS.
I'll go with the default for build.sh to respect anyone who has defined MAKEFLAGS.

OK I'll include a better docker file. I still think its better to use 14.04 as the baseline since that is by build
environment. When I upgrade to a newer distro/compiler I can update dockerfile to match my new environment.
Does this make any sense to you?

In both cases anyone who knows better can modify as desired.

Go aheard with the PR, it'l be a good simple first attempt, hard for me to mess it up.

Edit: Dumb question: Why does the dockerfile download cpuminer-opt when it was already downloaded to get dockerfile?

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 12:09:11 AM
Last edit: March 04, 2017, 12:52:51 AM by joblo
 #2189

Update on legacy branch.

I've decided to use 3.5.9 as the base for the legacy branch. As with the preious version it
is intended only for CPUs without AES, such as Intel Core2 and several AMD archietctures.
All algos up to 3.5.12 are supported, however, some do not work on AMD x2 CPUs.

The differences between the master and legacy branches.

- legacy branch includes groestl macros that were removed from the master branch resulting
  in faster X*, quark, and nist5 algos.

- legacy branch does not contain optimizations made in 3.5.10 that resulted in reduced performance
  on AMD x2 series CPUs.

- legacy branch includes new algos and bug fixes added between 3.5.10 and 3.5.12

- legacy branch will be updated very infrequently, if ever again.

- legacy release is untested by me, It's all mature code and should work, I will fix problems

- download links for legacy version will continue to be publised in the OP

- full source code will always be available

My intent was to build only sse2 binaries for Windows, however, my build script builds them all so
it's less work to build them all. Only the SSE2 version and maybe the sse2-aes version will be useful.
Anything with AVX should be faster using the master branch

The branch has been created in git but has not been updated yet and should not be used. It's still
a vanilla 3.5.9 release.


cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 04, 2017, 09:53:43 AM
Last edit: March 04, 2017, 01:16:37 PM by felixbrucker
 #2190

Thanks Felix,

That pretty much answered all my questions but raised another. The lack of portability may
be the deal breaker. Is there any advantage to docker considering the issues with cross-compiling
cpuminer-opt? It seems like a feature with limited user appeal, doesn't really seem appropriate
to include it in the package.

I was curious about make -j. I was considering removing the option and using the default but the man
page doesn't say what the default is.


well if your host/server is a plain docker host this solution is great (see coreos etc), also if you have access to a large homogeneous docker cluster, this might come in handy as well
the third and maybe last option where it might come in handy is if you prefer your computer with a minimal footprint of tools/dependencies/libs installed and prefer dockerized containers

this only applies to linux (and maybe osx), docker has windows support but im not sure the emulation part (besides win10 "native" ubuntu integration) might be performing equally here (after all it has to run a linux kernel somehow on windows)

a Dockerfile is appropriate directly in the repo, but id change some stuff as mentioned before

regarding -j: if not specified it defaults to 1 (ie make takes longer on multicore systems), if specified without an integer/arg its *unlimited*, else the integer count is the limit for running jobs in parallel


i can submit a PR tomorrow for the Dockerfile with my changes if needed

I did some more research on make -j and the default is as you say 1 but only if it's not set in MAKEFLAGS.
I'll go with the default for build.sh to respect anyone who has defined MAKEFLAGS.

OK I'll include a better docker file. I still think its better to use 14.04 as the baseline since that is by build
environment. When I upgrade to a newer distro/compiler I can update dockerfile to match my new environment.
Does this make any sense to you?

In both cases anyone who knows better can modify as desired.

Go aheard with the PR, it'l be a good simple first attempt, hard for me to mess it up.

Edit: Dumb question: Why does the dockerfile download cpuminer-opt when it was already downloaded to get dockerfile?

regarding make: id run make as is if the MAKEFLAGS are set (or MAKEOVERRIDE, not sure) and with nprocs otherwise, this ensures a fast build on "normal" systems without MAKEFLAGS set

i can see why using a newer ubuntu baseline image is preferred: newer gcc generate slightly faster binaries
i can see why using an older ubuntu baseline image is preferred: it grants stability as the devs build env uses the same tool versions

ultimately you decide which image to use for docker Tongue

sidenote: you can always setup a seperate (mostly) identical docker image which runs your build scripts for the various arches/tests inside the newer ubuntu docker image to verify all working well (ultimately resulting in a clean dockerized build environment) Tongue

regarding the download of cpuminer-opt inside the dockerfile: thats one of the things i will change, you will see in the PR later today

edit: i have submitted the PR
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 05:03:01 PM
 #2191

edit: i have submitted the PR

Merged.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 05:23:38 PM
 #2192

I'm trying to work with branches in git and having problems. At the moment I'm stuck
trying to clone the legacy branch. When I clone the repo it has no knowledge of the legacy branch,
if I download a zip of the legacy branch git doesn't recognize it as a valid repo.

I would have preferred to keep the 2 branches seperate instead of having to switch branches but
I can't even see the legacy branch to switch to it.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 04, 2017, 05:26:34 PM
 #2193

I'm trying to work with branches in git and having problems. At the moment I'm stuck
trying to clone the legacy branch. When I clone the repo it has no knowledge of the legacy branch,
if I download a zip of the legacy branch git doesn't recognize it as a valid repo.

I would have preferred to keep the 2 branches seperate instead of having to switch branches but
I can't even see the legacy branch to switch to it.

in your local git repo do:
Code:
git fetch
git checkout -b legacy origin/legacy

should work
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 06:02:42 PM
 #2194

I'm trying to work with branches in git and having problems. At the moment I'm stuck
trying to clone the legacy branch. When I clone the repo it has no knowledge of the legacy branch,
if I download a zip of the legacy branch git doesn't recognize it as a valid repo.

I would have preferred to keep the 2 branches seperate instead of having to switch branches but
I can't even see the legacy branch to switch to it.

in your local git repo do:
Code:
git fetch
git checkout -b legacy origin/legacy

should work

I don't think this will work, I need to specify where the branch starts. It looks like this is trying to recreate
what I did on github. I don't want to recreate it I want to use what was previously created.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 04, 2017, 06:08:20 PM
 #2195

I'm trying to work with branches in git and having problems. At the moment I'm stuck
trying to clone the legacy branch. When I clone the repo it has no knowledge of the legacy branch,
if I download a zip of the legacy branch git doesn't recognize it as a valid repo.

I would have preferred to keep the 2 branches seperate instead of having to switch branches but
I can't even see the legacy branch to switch to it.

in your local git repo do:
Code:
git fetch
git checkout -b legacy origin/legacy

should work

I don't think this will work, I need to specify where the branch starts. It looks like this is trying to recreate
what I did on github. I don't want to recreate it I want to use what was previously created.

fetch will update your local repo from github and checkout will checkout the branch specified
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 06:21:23 PM
 #2196

I'm trying to work with branches in git and having problems. At the moment I'm stuck
trying to clone the legacy branch. When I clone the repo it has no knowledge of the legacy branch,
if I download a zip of the legacy branch git doesn't recognize it as a valid repo.

I would have preferred to keep the 2 branches seperate instead of having to switch branches but
I can't even see the legacy branch to switch to it.

in your local git repo do:
Code:
git fetch
git checkout -b legacy origin/legacy

should work

I don't think this will work, I need to specify where the branch starts. It looks like this is trying to recreate
what I did on github. I don't want to recreate it I want to use what was previously created.

fetch will update your local repo from github and checkout will checkout the branch specified

fetch did nothing.

Code:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean
$ git fetch
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean
$ git branch
* master

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 04, 2017, 06:25:29 PM
 #2197

yes, you will need to execute the second command as well, see here:



you can use
Code:
git branch -a
to list all branches (not only the local ones), or
Code:
git branch -r
for all remote branches
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 06:40:22 PM
 #2198

yes, you will need to execute the second command as well, see here:



you can use
Code:
git branch -a
to list all branches (not only the local ones), or
Code:
git branch -r
for all remote branches

You didn't do a fetch. Huh Other that that it looks like what I want.

Looking further down the road how does one clone the legacy branch? It seems like there is no option to
select either the branch or the commit when cloning, you just get the repo. Not very useful for users who just
want to compile the legacy to have to checkout to make the legacy visible.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
felixbrucker
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile WWW
March 04, 2017, 06:57:47 PM
 #2199

fetch is only necessary if your local git repo doesnt have the new branch info from the remote(s) yet, after a clone there is no need for a fetch

to get the legacy branch directly when cloning one can use:
Code:
git clone <url> --branch <branch>
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1050


View Profile
March 04, 2017, 07:02:52 PM
 #2200

fetch is only necessary if your local git repo doesnt have the new branch info from the remote(s) yet, after a clone there is no need for a fetch

to get the legacy branch directly when cloning one can use:
Code:
git clone <url> --branch <branch>

Thanks. I'll include that in the instructions.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Pages: « 1 ... 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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 [110] 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 ... 191 »
  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!