나는 다음과 같은 문제에 대한 조언을 요청하고있다 :GPU 브 루트 포스 구현
내가 (평)의 OpenCL과 GPU를 기반으로 무차별 알고리즘을 쓰고 연구 프로젝트하십시오.
지금 내가 가지고 할
(나는 JTR 밖에 알고) 단어 (양 = 1024 * 64) .I 패스와 버퍼의 둘레에 각각 채우고있다 파이썬에서 브 루트 포스 - 발전기 버퍼를 GPU 커널에 연결합니다. GPU는 버퍼의 각 값에 대해 MD5 해쉬 값을 계산하고 주어진 값과 비교합니다. 잘 작동합니다.
하지만 :
이나는 이것이 정말 내가 GPU에서 얻을 수있는 최대 성능 생각하지 않는다 - 또는인가? CPU가 버퍼를 채우고 GPU에 '단지'해시 계산을 위해 합격해야 할 때 병목 현상이 발생하지 않습니까? 아니면 잘못되었습니다. 이것은 이미 fastet 또는 거의 fastet 성능입니다. 도망?
나는이 질문을하기 전에 여기서 많은 연구를 해왔다. 지금까지 GPU 커널에서 무차별 강제 구현을 찾을 수 없었습니다 - 왜?
들으
편집 1 :
내가 알고 싶은 것을 다른 방식으로 그것을 설명하려고합니다. 평균적인 컴퓨터가 있다고 가정 해 보겠습니다. GPU에서 brute-force-algorithm을 수행하는 것은 CPU보다 빠릅니다 (올바르게 수행하는 경우). 일부 GPU 무차별 공격 도구를 살펴본 결과, GPU 커널에서 전체 무차별 대항 구현을 찾지 못했습니다.
지금은 "워드 패키지"를 GPU에 전달하고 작업을 수행하도록했습니다 (해쉬 & 비교). 일반적인 방법처럼 보입니다. brute-force 알고리즘을 '분할하는 것'이 더 빠르지 않아 GPU의 각 유닛이 자체적으로 "단어 패키지"를 생성합니다.
저는 GPU 작업에서 CPU 작업을 수행하는 대신 일반 값으로 CPU에서 GPU로 패키지를 전달하는 것이 궁금합니다. GPU에서 무차별 알고리즘을 분리하는 것이 불가능하거나 GPU로 포팅하려는 노력의 가치가있는 것이 아니기 때문입니까?
시간 동안 Thx! 내 질문을 업데이트했습니다. 다시 한번 살펴보고 그것에 대해 어떻게 생각하는지 알려주시겠습니까? 제 질문은 제 프로그램과 성능에 대해 명확하지 않습니다. GPU 알고리즘의 일반적인 구현에 관한 것입니다. – tobnic
반갑습니다. 귀하의 알고리즘에 대한 구체적인 내용을 모르겠습니다.몇 가지 아이디어를 제공했지만 질문에 특정 태그를 추가하는 것이 좋습니다. – srodrb