루프는 0+1+2+3+...+99999999를 더합니다. 그리고 10,000걸음마다 값은 0입니다.
뭐 했어? - 파리의 번호를 할당하고 그게 다야. 내 결과와 당신의 결과가 어떻게 일치합니까?
나는 당신에게 다시 확인을 생각할 시간을 거의 하루를 주었다. 당신은 여전히 주장하고 있습니까? :)
구경하자:
// Это твой код (оригинал)" { \r\n"" int i = get_global_id(0); \r\n"" for(int u=0;u<100000000;u++) \r\n"" { \r\n"" out[i]+=u; \r\n"" if(out[i]>10000) \r\n"" out[i]=0; \r\n"// после десятитысячного шага итерации этот оператор начнёт выполняться в каждом цикле." } \r\n"// т.е. на выходе из цикла по любому будем иметь out[i] = 0;" out[i]+= i; \r\n"// ecли к нулю прибавить номер мухи то получится... сам посчитай..... на калькуляторе... :)" } \r\n" ;// есть ещё вариант, надёжнее - распечатай результаты и сравни. ;-)))
예처럼 보입니다.
나는 까다로운 구성(눈으로 보기 힘든)을 사용하지 않으려고 노력하기 때문에 확실하지 않지만, 코드 속도를 높일 수 있기 때문에 아마도 헛된 것입니다.
루프의 각 반복에서 변수 b가 다시 선언되기 때문에 코드가 더 느려질 것입니다.
아니, 그건 공평하지 않아. Andrey의 코드를 처리하고 속도를 높일 수 있습니다.
내가 뭘 한거지?
옵티마이저에서 필요한 것은 무엇입니까? 결과의 동등성을 유지하면서 오버헤드를 줄입니다! 확인하십시오. 모든 것이 페니로 수렴됩니다.
:)
// 그런데 !! 이 코드는 #define BUF_SIZE 1024*1024*4 를 사용해도 내 드라이버를 충돌시키지 않습니다 !!!
// 이것은 획기적인 것입니다!
;))))
내가 뭘 한거지?
옵티마이저에서 필요한 것은 무엇입니까? 결과의 동등성을 유지하면서 오버헤드를 줄입니다! 확인하십시오. 모든 것이 페니로 수렴됩니다.
:)
수렴합니까? 어떻게 확인 했습니까? :영형
어떻게! 계산기에! 8개를 병렬로 발사하여 확인했습니다.
귀하의 교육자는 거짓말을 하고 있습니다. :)
루프는 0+1+2+3+...+99999999를 더합니다. 그리고 10,000걸음마다 값은 0입니다.
뭐 했어? - 파리의 번호를 할당하고 그게 다야. 내 결과와 당신의 결과가 어떻게 일치합니까?
나는 여기서 담배를 조금 피웠고 이런 의심이 들었다.
더 빠르게 실행됩니다. 사실 get_global_id()는 함수가 아니라 초고속 레지스터 연산일 가능성이 큽니다.
프로파일러 없이는 확인할 수 없습니다. 누군가 정말로 그것을 필요로하고 원한다면 스튜디오에서 스튜디오로 결과를보고하십시오. 편리합니다.옵티마이저에서 필요한 것은 무엇입니까? 결과의 동등성을 유지하면서 오버헤드를 줄입니다! 확인하십시오. 모든 것이 페니로 수렴됩니다.
// 그런데 !! 이 코드는 #define BUF_SIZE 1024*1024*4 를 사용해도 내 드라이버를 충돌시키지 않습니다 !!!
담배를 더 피우고 짜증을 냈다. 반면에 드라이버가 떨어지지 않기 때문에 결과의 동등성은 이미 불완전 합니다.
젠장.. 정말 짜증나네요. :(
아니, 담배를 심하게 피웠다.
1^3 + 2^3 + 3^3 + ... + 1000000000^3 = 1000000000^2 * (1000000000 + 1)^2 / 4
왼쪽과 오른쪽 - 같은 것, 완전한 동등함.
왼쪽 식으로 만 돌을 꽤 오랫동안 가열하고 오른쪽 식으로 거의 즉시 프로세서가 눈치 채지 못하고 차갑게 유지합니다.
PS OpenCL 1.2로 업그레이드되었습니다(베타 버전). 버전 번호 - sse2 뒤에 작은 추가 사항에 주의하십시오.
과감하다고는 할 수 없지만 일부 테스트에서는 가속화되었습니다. Tast_Mand_에서 (음, 당신은 변태입니다, Andryukha ) - 5-10 퍼센트. 조금, 하지만 좋은.
귀하의 교육자는 거짓말을 하고 있습니다. :)
루프는 0+1+2+3+...+99999999를 더합니다. 그리고 10,000걸음마다 값은 0입니다.
뭐 했어? - 파리의 번호를 할당하고 그게 다야. 내 결과와 당신의 결과가 어떻게 일치합니까?
나는 당신에게 다시 확인을 생각할 시간을 거의 하루를 주었다. 당신은 여전히 주장하고 있습니까? :)
구경하자: