Code Monkey home page Code Monkey logo

profanity2's Introduction

profanity2

Profanity is a high performance (probably the fastest!) vanity address generator for Ethereum. Create cool customized addresses that you never realized you needed! Recieve Ether in style! Wow!

Screenshot

Important to know

A previous version of this project has a known critical issue due to a bad source of randomness. The issue enables attackers to recover private key from public key: https://blog.1inch.io/a-vulnerability-disclosed-in-profanity-an-ethereum-vanity-address-tool

This project "profanity2" was forked from the original project and modified to guarantee safety by design. This means source code of this project do not require any audits, but still guarantee safe usage.

Project "profanity2" is not generating key anymore, instead it adjusts user-provided public key until desired vanity address will be discovered. Users provide seed public key in form of 128-symbol hex string with -z parameter flag. Resulting private key should be used to be added to seed private key to achieve final private key of the desired vanity address (private keys are just 256-bit numbers). Running "profanity2" can even be outsourced to someone completely unreliable - it is still safe by design.

Getting public key for mandatory -z parameter

Generate private key and public key via openssl in terminal (remove prefix "04" from public key):

$ openssl ecparam -genkey -name secp256k1 -text -noout -outform DER | xxd -p -c 1000 | sed 's/41534e31204f49443a20736563703235366b310a30740201010420/Private Key: /' | sed 's/a00706052b8104000aa144034200/\'$'\nPublic Key: /'

Derive public key from existing private key via openssl in terminal (remove prefix "04" from public key):

$ openssl ec -inform DER -text -noout -in <(cat <(echo -n "302e0201010420") <(echo -n "PRIVATE_KEY_HEX") <(echo -n "a00706052b8104000a") | xxd -r -p) 2>/dev/null | tail -6 | head -5 | sed 's/[ :]//g' | tr -d '\n' && echo

Adding private keys (never use online calculators!)

Terminal:

Use private keys as 64-symbol hexadecimal string WITHOUT 0x prefix:

(echo 'ibase=16;obase=10' && (echo '(PRIVATE_KEY_A + PRIVATE_KEY_B) % FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F' | tr '[:lower:]' '[:upper:]')) | bc

Python

Use private keys as 64-symbol hexadecimal string WITH 0x prefix:

$ python3
>>> hex((PRIVATE_KEY_A + PRIVATE_KEY_B) % 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F)

Usage

usage: ./profanity2 [OPTIONS]

  Mandatory args:
    -z                      Seed public key to start, add it's private key
                            to the "profanity2" resulting private key.

  Basic modes:
    --benchmark             Run without any scoring, a benchmark.
    --zeros                 Score on zeros anywhere in hash.
    --letters               Score on letters anywhere in hash.
    --numbers               Score on numbers anywhere in hash.
    --mirror                Score on mirroring from center.
    --leading-doubles       Score on hashes leading with hexadecimal pairs
    -b, --zero-bytes        Score on hashes containing the most zero bytes

  Modes with arguments:
    --leading <single hex>  Score on hashes leading with given hex character.
    --matching <hex string> Score on hashes matching given hex string.

  Advanced modes:
    --contract              Instead of account address, score the contract
                            address created by the account's zeroth transaction.
    --leading-range         Scores on hashes leading with characters within
                            given range.
    --range                 Scores on hashes having characters within given
                            range anywhere.

  Range:
    -m, --min <0-15>        Set range minimum (inclusive), 0 is '0' 15 is 'f'.
    -M, --max <0-15>        Set range maximum (inclusive), 0 is '0' 15 is 'f'.

  Device control:
    -s, --skip <index>      Skip device given by index.
    -n, --no-cache          Don't load cached pre-compiled version of kernel.

  Tweaking:
    -w, --work <size>       Set OpenCL local work size. [default = 64]
    -W, --work-max <size>   Set OpenCL maximum work size. [default = -i * -I]
    -i, --inverse-size      Set size of modular inverses to calculate in one
                            work item. [default = 255]
    -I, --inverse-multiple  Set how many above work items will run in
                            parallell. [default = 16384]

  Examples:
    ./profanity2 --leading f -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --matching dead -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --matching badXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXbad -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --leading-range -m 0 -M 1 -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --leading-range -m 10 -M 12 -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --range -m 0 -M 1 -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --contract --leading 0 -z HEX_PUBLIC_KEY_128_CHARS_LONG
    ./profanity2 --contract --zero-bytes -z HEX_PUBLIC_KEY_128_CHARS_LONG

  About:
    profanity2 is a vanity address generator for Ethereum that utilizes
    computing power from GPUs using OpenCL.

  Forked "profanity2":
    Author: 1inch Network <[email protected]>
    Disclaimer:
      This project "profanity2" was forked from the original project and
      modified to guarantee "SAFETY BY DESIGN". This means source code of
      this project doesn't require any audits, but still guarantee safe usage.

  From original "profanity":
    Author: Johan Gustafsson <[email protected]>
    Beer donations: 0x000dead000ae1c8e8ac27103e4ff65f42a4e9203
    Disclaimer:
      Always verify that a private key generated by this program corresponds to
      the public key printed by importing it to a wallet of your choice. This
      program like any software might contain bugs and it does by design cut
      corners to improve overall performance.

Benchmarks - Current version

Model Clock Speed Memory Speed Modified straps Speed Time to match eight characters
GTX 1070 OC 1950 4450 NO 179.0 MH/s ~24s
GTX 1070 1750 4000 NO 163.0 MH/s ~26s
RX 480 1328 2000 YES 120.0 MH/s ~36s
RTX 4090 - - - 1096 MH/s ~3s
Apple Silicon M1
(8-core GPU)
- - - 45.0 MH/s ~97s
Apple Silicon M1 Max
(32-core GPU)
- - - 172.0 MH/s ~25s
Apple Silicon M3 Pro
(18-core GPU)
- - - 97 MH/s ~45s

profanity2's People

Contributors

0xsynon avatar dukei avatar eulerbeat5 avatar johguse avatar k06a avatar renbou avatar rootulp avatar sifotes avatar wjmelements avatar xxmattewxx avatar yoyyyyo avatar zumzoom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

profanity2's Issues

[Bug] multiple GPUs

image

ran it with an instance w 10x GTX 1080 Ti.

Was profanity made with running on instances with multiple gpus in mind?

Gave it a simple command to match for 'dead' but seems that I just get flooded with a stream of total Ghz on terminal without any private key info printed.

PoC Profanity v1

So since the old (original) profanity is vulnerable, from an ethical standpoint as well as for contract and EOA addresses I have created in the past (can't remember if that was done with Profanity or not). Is it possible to release the PoC on how to precompute the dataset? I assume it's done by just using the vulnerable version of profanity (v1) at least the mt19937_64 generation part.

Would also be nice to ethically drain wallets / contracts containing any amount of ETH, then somehow have the funds returned to the original owner. Just like what happened with the parity- hack and the "White Hat Group" who used the same exploit to secure the compromised wallets.

make all error on windows

process_begin: CreateProcess(NULL, uname -s, ...) failed.
g++ -c -std=c++11 -Wall -mmmx -O2 -mcmodel=large Dispatcher.cpp -o Dispatcher.o
Makefile:22: recipe for target 'Dispatcher.o' failed
make: *** [Dispatcher.o] Error 1

Cannot build on Windows 10

I tried on 3 computers, and same problem. When I run make, it shows this error:

process_begin: CreateProcess(NULL, uname -s, ...) failed. Makefile:7: pipe: No error g++ -c -std=c++11 -Wall -mmmx -O2 -mcmodel=large Dispatcher.cpp -o Dispatcher.o process_begin: CreateProcess(NULL, g++ -c -std=c++11 -Wall -mmmx -O2 -mcmodel=large Dispatcher.cpp -o Dispatcher.o, ...) failed. make (e=2): The system cannot find the file specified. make: *** [Makefile:22: Dispatcher.o] Error 2

Issue compiling

Trying to compile into exe using g++ getting some errors. not sure if i did any of the processes wrong please let me know

image

Invalid private key generated 63 hex instead of 64??

Got 63 bytes.

Generated using openssl ecparam -genkey -name secp256k1 -text -noout -outform DER | xxd -p -c 1000 | sed 's/41534e31204f49443a20736563703235366b310a30740201010420/Private Key: /' | sed 's/a00706052b8104000aa144034200/\'$'\nPublic Key: /'

Private Key: 0bc657b0af28b743c7f0d49c4de78efd47a5c8923dabfdef051fff5cdc7c30e7
Public Key: 045fcdcd81547df7052123426fd25958f843c5a94f9b3fa5fa17dee627334a19bcf44f48f4e8a37f33c14d363217e925f3c7c8f3ef5bd806c86a918fd246314339

Running profanity2

image

Time: 1s Score: 2 Private: 0x0000f8ba428990fca1e618a252ac3614f5de19b20ff00c2ded57bfb6933830aa Address: 0xdead42cbaa61c2f442ebf8648408f766ece982c4
^Ctal: 522.240 MH/s - GPU0: 522.240 MH/s

Attempting to use python3 method to calculate private key

image

No visual studio solution

There's no visual studio solution to build this on windows.
Is this coming in a future update?

Thanks, Ben

Private key does not match the address on AMD GPU

Private Key: 0x41f242f2eed3cd137bf92920217729e0388dd162c95e95a42ac5afb83730df6c
Public Key: 0497f968af3e0db0bc498be53824ff504888dd812efa28f8e44106223702640b6bd6104b40388d719bbe1899198a98e76a395478d0a891403f1a80352034eac699
./profanity2.x64 --leading 0 -z 97f968af3e0db0bc498be53824ff504888dd812efa28f8e44106223702640b6bd6104b40388d719bbe1899198a98e76a395478d0a891403f1a80352034eac699
Mode: leading
Target: Address
Devices:
  GPU0: AMD Radeon Pro 580X Compute Engine, 8589934592 bytes available, 36 compute units (precompiled = no)

Initializing OpenCL...
  Creating context...OK
  Compiling kernel...OK
  Building program...OK
  Saving program...OK

Initializing devices...
  This should take less than a minute. The number of objects initialized on each
  device is equal to inverse-size * inverse-multiple. To lower
  initialization time (and memory footprint) I suggest lowering the
  inverse-multiple first. You can do this via the -I switch. Do note that
  this might negatively impact your performance.

  GPU0 initialized

Initialization time: 93 seconds
Running...
  Always verify that a private key generated by this program corresponds to the
  public key printed by importing it to a wallet of your choice. This program
  like any software might contain bugs and it does by design cut corners to
  improve overall performance.

  Time:    94s Score:  5 Private: 0x00006799acac0ea1a6364b298ec855f3f2e2253fdfad1f42dcee84dc3d8b35fa Address: 0x00000cdcc859dadebd04f17f3136e209fb23018a
  Time:    94s Score:  6 Private: 0x00006799acae27d1a6364b298ec855f3f2e2253fdfad1f42dcee84dc3d8b35fe Address: 0x00000085f9e1a2f5f3bfab686d509f488df57396
  Time:    96s Score:  7 Private: 0x00006799acceebcfa6364b298ec855f3f2e2253fdfad1f42dcee84dc3d8b3617 Address: 0x000000090043190e32734d33772b48fa54c64249
^Ctal: 43.868 MH/s - GPU0: 43.868 MH/s
>>> hex((0x41f242f2eed3cd137bf92920217729e0388dd162c95e95a42ac5afb83730df6c + 0x00006799acceebcfa6364b298ec855f3f2e2253fdfad1f42dcee84dc3d8b3617) % 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F)
'0x41f2aa8c9ba2b8e3222f7449b03f7fd42b6ff6a2a90bb4e707b4349474bc1583'
>>>

the private key does not match the address 0x000000090043190e32734d33772b48fa54c64249

Weird error, not running

RTX 3060, Debian

└─$ ./profanity2.x64 --benchmark -z (my key here)
Mode: benchmark
Target: Address
Devices:
  GPU0: �k�U�U, 0 bytes available, 0 compute units (precompiled = no)
unknown exception occured

Devices not detected on WSL2

I'm currently on Windows Subsystem for Linux (WSL). When i run the command:
./profanity2.x64 --leading 0000000 -w 256 -z "7d798acc490f26daa63e5239b91c609c290b42cfca72430c098f1521ecd93b2ad79a56030c01122fe25ba84d0f5cddb977bfb9f70e7a959cf884c5e76d5d6c88"

Output:

Mode: leading
Target: Address
Devices:

It just stops midway like that. I've tried installing packages such as CUDA, SSH,... for WSL:
https://docs.nvidia.com/cuda/wsl-user-guide/index.html
https://ubuntu.com/tutorials/enabling-gpu-acceleration-on-ubuntu-on-wsl2-with-the-nvidia-cuda-platform#1-overview
It didn't help much. Any idea how to fix or is there any trick to work around this?

error whle compile in ubuntu

hello sir
im geting this erors
/usr/bin/ld: cannot find -lOpenCL

/usr/include/CL/cl_version.h:22:104: note: ‘#pragma message: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)’
22 | #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")

please help me how to fix this

[Feature Request] Add a mode to score the result based on the number of zero-bytes

Currently with the option --zeros this address the program scores a result higher if it has more characters zero even if there are fewer zero bytes. Example:

  Time:     0s Score: 13 Private: 0x... Contract: 0xcc00a0c121016f0d000e7a740fada0bd0066086f
  Time:     1s Score: 14 Private: 0x... Contract: 0x400ab2800f0032900f00a1d0580630846044557b
  Time:     1s Score: 15 Private: 0x... Contract: 0xc0e250000ad20bf5d079a002003fe900c00d1e32
  Time:     2s Score: 16 Private: 0x... Contract: 0x9afd138054000005209086700005c9b0007c1908
  Time:     3s Score: 17 Private: 0x... Contract: 0x07a316d0f0eb0900090002606080d00d093c4045

In zero-byte mode, the scores for these results would be

  • Score: 3 -- 0xcc 00 a0 c1 21 01 6f 0d 00 0e 7a 74 0f ad a0 bd 00 66 08 6f
  • Score: 2 -- 0x40 0a b2 80 0f 00 32 90 0f 00 a1 d0 58 06 30 84 60 44 55 7b
  • Score: 3 -- 0xc0 e2 50 00 0a d2 0b f5 d0 79 a0 02 00 3f e9 00 c0 0d 1e 32
  • Score: 4 -- 0x9a fd 13 80 54 00 00 05 20 90 86 70 00 05 c9 b0 00 7c 19 08
  • Score: 2 -- 0x07 a3 16 d0 f0 eb 09 00 09 00 02 60 60 80 d0 0d 09 3c 40 45

I don't know OpenCL at all but I tried to change the profanity_score_matching function like this:

__kernel void profanity_score_matching(__global mp_number * const pInverse, __global result * const pResult, __constant const uchar * const data1, __constant const uchar * const data2, const uchar scoreMax) {
    const size_t id = get_global_id(0);
    __global const uchar * const hash = pInverse[id].d;
    int score = 0;

    for (int i = 0; i < 20; ++i) {
        if (hash[i] == 0) {       // <---- here
            ++score;
        }
    }

    profanity_result_update(id, hash, pResult, score, scoreMax);
}

But it didn't change anything. I'm probably modifying the wrong function.

Script does not start

I was able to run the script successfully on my PC however it does not start on my server. I am just able to get it to here:

Any help would be appreciated.

[possibly not an issue] unexpected long-time generation on m1 from 9+ digits

Readme stays that on M1
(8-core GPU) performance is 45.0 MH/s,
while it shows only 18 MH/s (tested on 4 different m1 air 16Gb), for 8 digits in the matching pattern it takes 1-2 minutes on average, as expected, example of command:

./profanity2.x64 \
--contract \
--matching 7777XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX7777 \
-z 94243fddbb2f775084b9fa0600a10632b3122266dac2b88d438388b82ce1b8888055551cb3c0e39391d61bb48c2643dad6af7d0f97b989f16ea2d6c2df5b41c2

however, just one digits more takes not 16x times as expected, but whole 100x more, example of command:

./profanity2.x64 \
--contract \
--matching 77777XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX7777 \
-z 94243fddbb2f775084b9fa0600a10632b3122266dac2b88d438388b82ce1b8888055551cb3c0e39391d61bb48c2643dad6af7d0f97b989f16ea2d6c2df5b41c2

might be the case of thermal-throttling, but result that for m1 the effective hashrate is merely 2 MH/s

Invalid keys generated by GPUs

Continuing the discussion from #2 --

I was indeed able to generate a valid address using my M1 Mac, which I understand had been the majority of the changes in Profanity2. However, GPU support is still an important aspect of this tool, and I'm consistently getting keys that don't match through my environment (Ubuntu 18.02 with Vega 56 GPU(s))

Unfortunately, I admittedly don't know C++, so I'm not sure what direct help I can be, but would be open to testing any potential changes.

Regarding the issue of generating addresses for -- leading

When I use -- leading 0 to generate an address
He will print in increments of 0. How to print all of them? such as

Time:     7s Score:  5 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  6 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  6 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  8 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  8 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  8 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:   107s Score:  9 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:   207s Score:  9 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:   307s Score:  9 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:   407s Score:  9 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Total: 189.493 MH/s - GPU0: 189.493 MH/s

Instead of increasing like this

Time:     7s Score:  5 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  6 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  6 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x0000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:     7s Score:  8 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x00000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Time:   107s Score:  9 Private: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Address: 0x000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Or rather, let him print everything after X zeros appear, and only increment before X zeros

Unable to compile current master

When attempting to test #5 with the new commits, I am now getting the following:

Dispatcher.cpp: In function ‘cl_ulong4 fromHex(const string&)’:
Dispatcher.cpp:16:32: error: ‘htonl’ was not declared in this scope
 #define htonll(x) ((((uint64_t)htonl(x)) << 32) | htonl((x) >> 32))
                                ^
Dispatcher.cpp:47:4: note: in expansion of macro ‘htonll’
    htonll(*(uint64_t *)(data + 24)),
    ^~~~~~
Dispatcher.cpp:16:32: note: suggested alternative: ‘htonll’
 #define htonll(x) ((((uint64_t)htonl(x)) << 32) | htonl((x) >> 32))
                                ^
Dispatcher.cpp:47:4: note: in expansion of macro ‘htonll’
    htonll(*(uint64_t *)(data + 24)),
    ^~~~~~

issue compiling

Administrator@WIN-9UDRVPAB9FG MINGW64 ~/Desktop/New folder (4)
$ cd profanity2

Administrator@WIN-9UDRVPAB9FG MINGW64 ~/Desktop/New folder (4)/profanity2 (master)
$ ls
ArgParser.hpp Makefile SpeedSample.cpp keccak.cl profanity.cl
CLMemory.hpp Mode.cpp SpeedSample.hpp lexical_cast.hpp profanity.cpp
Dispatcher.cpp Mode.hpp help.hpp precomp.cpp types.hpp
Dispatcher.hpp README.md img/ precomp.hpp

Administrator@WIN-9UDRVPAB9FG MINGW64 ~/Desktop/New folder (4)/profanity2 (master)
$ g++ profanity.cpp
profanity.cpp:16:10: fatal error: CL/cl.h: No such file or directory
16 | #include <CL/cl.h>
| ^~~~~~~~~
compilation terminated.

Administrator@WIN-9UDRVPAB9FG MINGW64 ~/Desktop/New folder (4)/profanity2 (master)

Allow help without -z

Minor annoyance, but currently you cannot run profanity2 at all without a valid argument to -z, which includes printing the help screen. This makes referencing arguments a bit more difficult than it should be.

windows11 error

Dispatcher.hpp:14:10: fatal error: CL/cl.h: No such file or directory
#include <CL/cl.h>
^~~~~~~~~
my gpu is 3080ti and i have installed cuda12.1.1,what shall i do?my cpu is ryzen 5600.
anyone can help me,thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.