10^6 유전 요인과 GeneXGene 상호 작용 (~ 5x10^11)을 분석하기 위해 GPU 분석에 적합 할 수있는 수 많은 독립 선형 회귀 문제가 있습니다.CUDA를 사용한 큰 선형 회귀 모델 구현
목적은 포함 된 상호 작용 용어로 선형 회귀를 사용하여 결과 변수 (뇌 표현형)를 조절할 때 GeneXGene 상호 작용 효과를 철저히 검색하는 것입니다.
Householder QR factorization은 피팅 회귀 모델의 솔루션이 될 수 있습니다. 그러나이 특정 작업의 각 회귀 행렬은 ~ 10'000x10의 크기에 쉽게 접근 할 수 있으므로 각 회귀 행렬 GPU 온칩 메모리 (공유, 레지스터 등)에 맞지 않는 것 같습니다.
본질적으로 대역폭 제한이있는 문제를 회귀 분석 중에 GPU 전역 메모리에 보관해야합니까 아니면 다른 전략을 사용할 수 있습니까?
편집 다음은 문제에 대한 자세한 내용은 다음과 같습니다
약 10'000 주제 ~ 1M 유전 매개 변수 각각이있을 것입니다 (유전 매트릭스 : 10'000x10^6). 각 반복의 알고리즘은이 유전자 매트릭스의 2 열 (10'000x2)과 유전자 데이터 (연령, 성별 등)와 관련없는 6 개의 다른 변수를 선택해야하므로 최종 회귀 모델은 10의 크기와 같은 행렬을 처리합니다 '000x [2 (유전 인자) +6 (공 변수) +2 (인터셉트 & 상호 작용 기간)]] 및 결과 변수 벡터 (10'000x1). 주어진 유전 적 요인에 따라 매번 5e11 번 반복됩니다. 미리 정의 된 통계적 임계 값을 통과하는 모델은 출력으로 저장해야합니다.
특정 문제는 ~ 5e11 별도의 회귀 모델이 있지만 단일 칩이 온칩 메모리에 적합하지 않은 것으로 나타나는 점이 있습니다.
나는 CUDA 라이브러리를 고집하는 것이 해결책이 아닐 수도 있습니다. 대부분의 데이터 조작을 CPU 측에서 처리하고 각 QR 분해를 GPU에만 보냅니다.
최고 수준으로 이동하십시오. 일반적인 선형 대수 루틴으로 문제를 줄이고 [CUDA 라이브러리] (https://developer.nvidia.com/gpu-accelerated-libraries)를 사용하십시오. (예 : cuBLAS 및 cuSolver가 이미 필요한 것일 수도 있습니다.). 당신이 정말로 필요할 때까지 자신의 물건을 발명하고 대역폭에 대해 걱정하는 것을 연기하십시오. – Drop
문제 크기가 갑자기 10^12에서 10000 * 10으로 변경된 이유는 무엇입니까? – kangshiyin
@Drop 감사합니다. 그러나 10^12 개의 회귀 모델을 고려할 때 이것이 효율적일까요? – Sourena