Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: laszlo on May 02, 2010, 03:51:07 AM



Title: Mac OS X full build instructions and updated binary package
Post by: laszlo on May 02, 2010, 03:51:07 AM
It took a little while to figure this out.. I have created a document and a little patch file to make it painless to build this on Mac OS.  Intel only, PPC doesn't work right now unless someone wants to make a patch for it.  The daemon mode isn't working yet, I will take a look at that eventually, but others are welcome to help out with a patch too :)

Instructions and files are all here http://heliacal.net/~solar/bitcoin/mac-build/

Here is an updated binary with the menus and stuff fixed to work like other Mac apps..

http://heliacal.net/~solar/bitcoin/Bitcoin-MacOSX-intel-svn-75-20100501.dmg (http://heliacal.net/~solar/bitcoin/Bitcoin-MacOSX-intel-svn-75-20100501.dmg)

Your wallet and debug.log and such are stored in ~/Library/Application Support/Bitcoin so back this up regularly.

Currently I'm working on adding OpenCL support to increase the yield so expect to see more updates soon.

Thanks for checking it out, let me know how it works out for you!


Title: Re: Mac OS X full build instructions and updated binary package
Post by: random on May 02, 2010, 10:18:54 AM
Thanks! This should be added to the download page.


Title: Re: Mac OS X full build instructions and updated binary package
Post by: laszlo on May 10, 2010, 05:20:19 AM
Updated Mac OS X binary which uses OpenCL

It will use your GPU to generate bitcoins.  This works really well if you have a good GPU like an NVIDIA 8800 or something like that.  So far I only have it for Mac OS and only for 10.6+.  10.5 didn't have OpenCL yet so if you're using 10.5 stay with the previous release.

Mac OS X Intel 10.6 package

http://heliacal.net/~solar/bitcoin/Bitcoin-MacOSX-Intel-svn-75-opencl-2010-05-10.dmg

Please let me know if you have a chance to test this.  To see how your performance is, run this in Terminal.app

Code:
tail -f ~/Library/Application\ Support/Bitcoin/debug.log

You will see messages like this after it spools up.  Wait about 2-3 minutes after it starts generating for it to even out.. it will spike low or high at first.

Example messages:
Code:
**Perf - thread 1 : 3386k iter/sec
**Perf - thread 2 : 787k iter/sec
**Perf - total : 4173k iter/sec (2 threads)
**Perf - thread 1 : 3445k iter/sec
**Perf - thread 2 : 799k iter/sec
**Perf - total : 4244k iter/sec (2 threads)

I will try to get this working for Linux and Windows as well, as time allows.

Let me know what you guys think.



Title: Re: Mac OS X full build instructions and updated binary package
Post by: The Madhatter on May 10, 2010, 12:41:06 PM
Very very nice. :D


Title: Re: Mac OS X full build instructions and updated binary package
Post by: fergalish on May 10, 2010, 03:03:09 PM
Great! Seems to be working fine.  With an nvidia 9400m I'm getting about 500k iter/s extra.  Funny thing, I tried your suggestion in the other thread, to switch of 1 cpu thread, but it was worse than before (basically 1 cpu core was idle and the gpu didn't increase).  When I removed the "limit generation to n processors" tick, everything stayed at low numbers, about half of usual.  I had to quit & restart bitcoin to get it back to the normal full amount.


Title: Re: Mac OS X full build instructions and updated binary package
Post by: laszlo on May 10, 2010, 04:06:30 PM
I added a little fix after I made the binary.. It will try to leave one core unused so that it doesn't bog down.  I have a MacBook with a 9400M as well and since the GPU is so slow (only about 500k/sec) it doesn't really lose that much if there's 2 CPU threads running.  But on my desktop with an 8800 (about 3500k/sec) it drops dramatically if I don't leave one of the cores free.  So really on the MacBook it might be better to just run 2 CPU threads anyway, maybe I'll add an option for tweaking.. this is all just a prototype right now.

I'm getting about 950k/sec total with 9400M + one CPU thread on the MacBook I have.  It seemed like i was getting about 1000-1100k/sec with 2 CPU threads + 9400M.  About 700-800k/sec with just the CPUs.


Title: Re: Mac OS X full build instructions and updated binary package
Post by: fergalish on May 10, 2010, 07:55:11 PM
I'm getting about 950k/sec total with 9400M + one CPU thread on the MacBook I have.  It seemed like i was getting about 1000-1100k/sec with 2 CPU threads + 9400M.  About 700-800k/sec with just the CPUs.
These are more or less exactly the numbers I get.  GPU gets about 500k/s, each CPU core gets about 350k/s.


Title: Re: Mac OS X full build instructions and updated binary package
Post by: kpurcell on May 16, 2011, 10:07:07 PM
Installed and seems to be running,

But I don't get any stats, this is what I get:

MainFrameRepaint
GetAvailableDevices():  Found 1 OpenCL platform(s)
GetAvailableDevices():  Checking OpenCL platform 'Apple' (index 0)
GetAvailableDevices():  Found 1 devices on platform 'Apple' (index 0)

Printing info for device index 0  Vendor: NVIDIA  Device: GeForce 8800 GT

  CL_DEVICE_VENDOR:          NVIDIA
  CL_DEVICE_NAME:          GeForce 8800 GT
  CL_DRIVER_VERSION:          CLH 1.0
  CL_DEVICE_TYPE:         CL_DEVICE_TYPE_GPU
  CL_DEVICE_MAX_COMPUTE_UNITS:      14
  CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:   3
  CL_DEVICE_MAX_WORK_ITEM_SIZES:   512 / 512 / 64
  CL_DEVICE_MAX_WORK_GROUP_SIZE:   512
  CL_DEVICE_MAX_CLOCK_FREQUENCY:   1500 MHz
  CL_DEVICE_ADDRESS_BITS:      32
  CL_DEVICE_IMAGE_SUPPORT:      1
  CL_DEVICE_MAX_READ_IMAGE_ARGS:   128
  CL_DEVICE_MAX_WRITE_IMAGE_ARGS:   8
  CL_DEVICE_IMAGE_MAX_WIDTH:      2d width 4096, 2d height 4096, 3d width 2048, 3d height 2048, 3d depth 2048
  CL_DEVICE_MAX_MEM_ALLOC_SIZE:      128 MByte
  CL_DEVICE_GLOBAL_MEM_SIZE:      512 MByte
  CL_DEVICE_ERROR_CORRECTION_SUPPORT:   no
  CL_DEVICE_LOCAL_MEM_TYPE:      local
  CL_DEVICE_LOCAL_MEM_SIZE:      16 KByte
  CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:   64 KByte
  CL_DEVICE_QUEUE_PROPERTIES:      CL_QUEUE_PROFILING_ENABLE
  CL_DEVICE_EXTENSIONS:
               cl_khr_byte_addressable_store
               cl_khr_global_int32_base_atomics
               cl_khr_global_int32_extended_atomics
               cl_APPLE_gl_sharing
               cl_APPLE_SetMemObjectDestructor
               cl_APPLE_ContextLoggingFunctions
  CL_DEVICE_PREFERRED_VECTOR_WIDTH:   char 1, short 1, int 1, long 1, float 1, double 0

Preparing device... (GeForce 8800 GT (NVIDIA))
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
AddAddress()
...
AddAddress() goes on forever


Title: Re: Mac OS X full build instructions and updated binary package
Post by: budfields on May 19, 2011, 12:31:40 AM
I'm using the 10.6 binary on a 2007 iMac.

It's running for me:

**Perf - BitcoinMiner 1086k iter/sec (2 threads)

But, I'm also getting the continuous AddAddress() messages. Does this mean I do not have something configured properly?
What Address is it trying to add?


Title: Re: Mac OS X full build instructions and updated binary package
Post by: dibtc on May 19, 2011, 02:58:40 PM
It took a little while to figure this out.. I have created a document and a little patch file to make it painless to build this on Mac OS.  Intel only, PPC doesn't work right now unless someone wants to make a patch for it.  The daemon mode isn't working yet, I will take a look at that eventually, but others are welcome to help out with a patch too :)

Instructions and files are all here http://heliacal.net/~solar/bitcoin/mac-build/

Here is an updated binary with the menus and stuff fixed to work like other Mac apps..

http://heliacal.net/~solar/bitcoin/Bitcoin-MacOSX-intel-svn-75-20100501.dmg (http://heliacal.net/~solar/bitcoin/Bitcoin-MacOSX-intel-svn-75-20100501.dmg)



Hi and thank you for your efforts. Just wanted to inform you that the binary crashes on launch on my macbook. Here's the error report:


Process:         bitcoin [897]
Path:            /Applications/Bitcoin.app/Contents/MacOS/bitcoin
Identifier:      org.bitcoin.bitcoin
Version:         svn-75 (1)
Code Type:       X86 (Native)
Parent Process:  launchd [143]

Interval Since Last Report:          6989282 sec
Crashes Since Last Report:           217
Per-App Interval Since Last Report:  14 sec
Per-App Crashes Since Last Report:   1

Date/Time:       2011-05-19 16:32:15.240 +0200
OS Version:      Mac OS X 10.5.8 (9L31a)
Report Version:  6
Anonymous UUID:  BE4BA993-D537-47E8-9595-5B39261A80CF

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread:  0

Dyld Error Message:
  Symbol not found: _fopen$UNIX2003
  Referenced from: /Applications/Bitcoin.app/Contents/MacOS/bitcoin
  Expected in: /usr/lib/libSystem.B.dylib



The issue seems to be similar to whatever's going on in this post (http://forum.bitcoin.org/index.php?topic=371.0) but I'm a bit of a newbie so I haven't tried compiling anything..



Title: Re: Mac OS X full build instructions and updated binary package
Post by: soneil on May 20, 2011, 03:22:54 PM
Similar crash here, early-2011 macbook pro 8,2 (Radeon 6750M) on 10.6.7.

debug.log finishes at:
GetAvailableDevices():  Found 1 devices on platform 'Apple' (index 0)

Printing info for device index 0  Vendor: AMD  Device: ATI Radeon HD 6750M

  CL_DEVICE_VENDOR:          AMD
  CL_DEVICE_NAME:          ATI Radeon HD 6750M
  CL_DRIVER_VERSION:          1.0
  CL_DEVICE_TYPE:         CL_DEVICE_TYPE_GPU
  CL_DEVICE_MAX_COMPUTE_UNITS:      5
  CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:   3
  CL_DEVICE_MAX_WORK_ITEM_SIZES:   1024 / 1024 / 1024
  CL_DEVICE_MAX_WORK_GROUP_SIZE:   1024
  CL_DEVICE_MAX_CLOCK_FREQUENCY:   150 MHz
  CL_DEVICE_ADDRESS_BITS:      32
  CL_DEVICE_IMAGE_SUPPORT:      0
  CL_DEVICE_MAX_READ_IMAGE_ARGS:   0
  CL_DEVICE_MAX_WRITE_IMAGE_ARGS:   0
  CL_DEVICE_IMAGE_MAX_WIDTH:      2d width 8192, 2d height 8192, 3d width 0, 3d height 0, 3d depth 0
  CL_DEVICE_MAX_MEM_ALLOC_SIZE:      128 MByte
  CL_DEVICE_GLOBAL_MEM_SIZE:      512 MByte
  CL_DEVICE_ERROR_CORRECTION_SUPPORT:   no
  CL_DEVICE_LOCAL_MEM_TYPE:      local
  CL_DEVICE_LOCAL_MEM_SIZE:      32 KByte
  CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:   64 KByte
  CL_DEVICE_QUEUE_PROPERTIES:      CL_QUEUE_PROFILING_ENABLE
  CL_DEVICE_EXTENSIONS:
  CL_DEVICE_PREFERRED_VECTOR_WIDTH:   char 16, short 8, int 4, long 2, float 4, double 0

Preparing device... (ATI Radeon HD 6750M (AMD))


Preparing device... is always followed by a crash, in libSystem.B.dylib - full crashlog is at http://pastebin.com/ALfPv6PD


Title: Re: Mac OS X full build instructions and updated binary package
Post by: defxor on May 31, 2011, 09:46:06 PM
Thanks for checking it out, let me know how it works out for you!

Seeing as the thread was started a year ago, just to verify: Are you the only one currently working on the mac client? Just realized it doesn't seem to use NAT-PNP/UPnP due to the low connection count i got. With Bitcoin constantly in the news a lot of people who aren't comfortable doing manual port mapping (might not even run devices with static internal IPs) are probably trying it out now.

(A secondary but related problem is not mac specific: Not being able to run two Bitcoin clients on the same local network with one external IP without manual pass-through configuration)