featurecat / lizzie

Lizzie - Leela Zero Interface
GNU General Public License v3.0
959 stars 227 forks source link

Using Lizzie with cloud based Leela #320

Closed chris-hughes-SB closed 5 years ago

chris-hughes-SB commented 6 years ago

Is it possible to hook up Lizzie to a cloud based Leela?

ie. running Leela on Google Colabrotory -- https://github.com/gcp/leela-zero/blob/master/COLAB.md

Running Leela on CPU only isn't great and would love to use the free GPU on offer

dfannius commented 6 years ago

I haven't tried this specifically but I don't see why not. I currently run Leela Zero on a separate machine (with a GPU) through ssh. You should just be able to change the leelaz.engine-command parameter in config.txt.

bvandenbon commented 6 years ago

Damn, I just asked the same question, overlooked this one.

featurecat commented 6 years ago

I definitely heard people talking about this. search this repo issues for "ssh"? I think someone gave a solution.

On Fri, Aug 3, 2018, 7:54 AM Bram Vandenbon notifications@github.com wrote:

Damn, I just asked the same question, overlooked this one.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/featurecat/lizzie/issues/320#issuecomment-410231318, or mute the thread https://github.com/notifications/unsubscribe-auth/AKB1sq-OSAsybzzQb1pvyCykaiL0rHZfks5uNDoBgaJpZM4VH4pj .

bvandenbon commented 6 years ago

@featurecat thanks, I guess this is the one: https://github.com/featurecat/lizzie/issues/92

bvandenbon commented 6 years ago

It works ! ;-) Running in Amazon AWS cloud engine with a p2.xlarge instance. (K80 gpu).

running in the aws cloud

I'm just not sure if this is the most optimal way to run it ...

"engine-command": "ssh -i key123.pem ubuntu@ec2-18-213-3-208.compute-1.amazonaws.com leela-zero/src/leelaz --weights leela-zero/best-network --gtp --lagbuffer 0 --threads 2",

In particular having doubts about the --threads 2 and --lagbuffer 0 I mean it runs a lot faster than on my laptop (x500 ?), but I had really high expectations of K80 GPU's.

featurecat commented 6 years ago

you want lag buffer to be 0. that only matters in timed games. thread count could probably be higher but needs experimentation.

OlivierBlanvillain commented 5 years ago

Duplicate of #92, closing.

trunterzx commented 5 years ago

@bvandenbon Hi, could you share more information about how you installed Leela Zero on AWS? Like, what's the AMI that you used to launch the instance?

I'm also trying to run LZ through AWS, but I'm stuck at the very first step of choosing the AMI for the instance...

bvandenbon commented 5 years ago

How to DIY 👎

I took an ubuntu instance, and then cloned the github repository to it, installed dependencies, build it, downloaded a network file.

There is a section in the leela zero readme called "Example of compiling and running - Ubuntu & similar". That really describes it in detail. After that you can just run leelaz -g -w network.gz

Now, every time you launch your instance, it will have a different IP address, and that's a bit annoying. You could pay for a fixed IP, but actually it is possible to write a script and ask AWS what the IP is. I wrote mine in java, but now that I look back at it, it would have been easier in javascript I think.

Anyway, you still need to configure your lizzie to connect to leelazero. In your engine-command setting put this:

ssh.exe -i yourkey.pem ubuntu@yourinstance.amazonaws.com leela-zero/src/leelaz --weights leela-zero/network --gtp --lagbuffer 0 --threads 2

The ubuntu user has no password, but it needs a pem file to secure the connection, which you can download from the AWS console. Now, I personally had a lot of problems with the ssh.exe file of windows. Apparently there are different ways to install it, and on some computers I just can't get it to work. But on others it works straightaway.

Before you use it, you will probably need to connect one time just from a command prompt, because you need to confirm that the host is secure. (just enter "yes"). From that point on, windows adds the host of your amazon instance to a whitelist, and next time you won't have to do this again. But it's crucial to do this step manually, because lizzie won't be able to answer the yes/no question obviously.

Another issue, is the fact that lizzie wants to download the network file every time you launch lizzie. But actually that's not necessary because the local network file doesn't matter, it's the one that is hosted in your amazon instance that matters. - But I think you can disable this with some lizzie setting.

Or use my new website 🥇

I am working on a webbased GUI that uses both AWS and Google instances in the background. Aiming to get it released before the end of this month.

If you are curious, you can find some screenshots on my twitter: https://twitter.com/gogobrugo/status/1079529880952410113