CUDA 장치 코드에서 C++ 템플릿을 사용할 수 있습니다. 그래서지도를 사용하여 사전을 만들면 새로운 값을 삽입하는 작업이 원자적일 것인가?지도가있는 CUDA <value, key> 및 원자 조작
특정 값의 출현 횟수를 계산하려는 경우, 즉 코드의 확률을 사용하여 코드 사전을 만듭니다. 내가 제대로 질문을 이해한다면
감사
맥
CUDA 장치 코드에서 C++ 템플릿을 사용할 수 있습니다. 그래서지도를 사용하여 사전을 만들면 새로운 값을 삽입하는 작업이 원자적일 것인가?지도가있는 CUDA <value, key> 및 원자 조작
특정 값의 출현 횟수를 계산하려는 경우, 즉 코드의 확률을 사용하여 코드 사전을 만듭니다. 내가 제대로 질문을 이해한다면
감사
맥
장치 코드 내에서 STL을 사용할 수 없습니다. 유사한 기능에 대해 thrust을 확인할 수 있습니다 (특히 실험 네임 스페이스 확인).
템플릿은 디바이스 코드에서 문제가 없지만 CUDA C는 현재 가상 함수 및 예외와 같은 큰 기능 중 일부는 아직 사용할 수 없지만 (대개 페르미 하드웨어에서만 가능함) C++ 기능을 상당 부분 지원합니다.
직접 구현하기로 결정한 경우 atomicAdd() 내장 함수를 사용하여 원자 작업을 가져올 수 있습니다. 자세한 내용은 CUDA Programming Guide을 확인하십시오.
STL을 CUDA와 호환되지 않게하는 할당 자일까요? 자체 할당자를 작성한다면 CUDA에서 STL을 사용할 수 있습니까? –
즉, 내가 알고 싶었던 것이 또 하나의 장점을 배웠다 : 다음 번에 나는 STL 큐를 줄 것이다. –
나는 'std :: map'에 필적하는 기능을 제공하는 Thrust에서 아무것도 찾지 못했습니다. 나는'int value = myMap [ "key"]'와 같은 사전 같은 검색을 허용하지 않는 것을 보았다. –
, 당신은 CUDA 내부 STL 맵을 사용하려고? 가능성이 높습니다. 당신은 자신의 구현을 고안해야 할 것입니다. 그러나 추력 라이브러리에서 구현을 찾을 수 있습니다.
나는 CUDA가 instriptics와 함께 C 변형을 사용하고 있음을 확신합니다. 템플릿이 없습니다. – GManNickG
하지만 http://forums.nvidia.com/index.php?showtopic=98087에 "기기 코드에서 템플릿을 사용할 수 있습니다"라고 덧붙여 말합니다. –
@macs : 그 날의 새로운 것을 배웠습니다. :) 이러한 작업이 원자화 될 것인지 여부는 구현에 따라 다르므로 nVidia에서 보장하는 리소스를 찾아야합니다. – GManNickG