MMX SSE 3D NOW!‚̃vƒ ..
[2ch|¥Menu]
331:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 00:14:39
‚€[‚ށA‚æ‚­‚Ý‚è‚áŒëŽš‚Á‚Ä‚œ‚ȁB

>>327
MC‚ª’Pƒ‚Á‚ď‘‚¢‚œŠo‚Š‚Í‚È‚¢‚æB
‹à—ZHŠw‚Ì–â‘è‚Á‚ÄSIMD‚ªƒNƒŠƒeƒBƒJƒ‹‚É—˜‚¢‚Ä‚­‚邿‚€‚È
’Pƒ‚ȑ㐔ŒvŽZ‚Ȃ̂©‚Á‚ĘbB

332:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 00:43:42
‚œ‚Æ‚Š‚ÎExce‚Å—pˆÓ‚³‚ê‚Ä‚¢‚éNormdist‚Æ‚¢‚Á‚œŠm—Š•ª•zŠÖ”‚̂悀‚È‚à‚Ì‚Í
€—pƒ‰ƒCƒuƒ‰ƒŠ[‚ðw“ü‚·‚éŽè‚ª‚ ‚邪Aˆ—ƒXƒs[ƒh‚Ɛž“x‚̃gƒŒ[ƒhƒIƒt‚Ì’²®‚ª—˜‚©‚È‚¢B

‚±‚ê‚ðC‚Å‘g‚Þ‚ÆŽl‘¥‰‰ŽZ+EXP‚Ì‘œ—p‚ƂȂéB•’ʂɃvƒƒOƒ‰ƒ~ƒ“ƒO‚·‚邯‚©‚È‚è’x‚¢‚ªSIMD‚ðŽg‚€‚Ƒ啝‚É
‚‘¬‰»‚·‚éBSIMD‚ÉEXP‚ª‚ ‚邯—Ç‚¢‚Ì‚Ÿ‚ªB


333:EÍEj‚Á-›œ
07/06/01 00:59:18
‚»‚̕ӂ̓jƒ…[ƒgƒ“–@Žg‚Á‚œ‚èƒe[ƒ‰[“WŠJ‚µ‚œ‚èB
Intel‚ª”Šw—pƒ‰ƒCƒuƒ‰ƒŠo‚µ‚ĂȂ©‚Á‚œH

x87‚̃AƒŒ‚͂ǂ€‚¹ƒ}ƒNƒ–œ—߂Ȃ̂ŁB
‚¿‚Ȃ݂Édivps‚Æ‚©‚Å“Ÿ‚ç‚ê‚鏀‚͋ߎ—’l‚Őž“x’á‚¢B

334:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 01:06:33
•W€ŠÖ”‚æ‚èƒjƒ…[ƒgƒ“‚̂ق€‚ª‘‚¢‚Á‚Ä‚±‚Æ‚ ‚é‚Ì‚©H
ƒjƒ…[ƒgƒ“‚Í•û’öŽ®‚ð‰ð‚­‚̂ɑœ—p‚·‚邪‰Šú’l–â‘肪‚ ‚邵‚ȁB

MKL‚ÌEXP‚ÍŽg‚¢•û‚É‚æ‚邟‚ë‚€‚ªAƒƒ‚ƒŠ‚Ƀf[ƒ^‚ð’™‚ß‚é•K—v‚ª‚ ‚邯‚«‚͍‚‘¬‚Ÿ‚ë‚€‚ª
‚»‚€‚łȂ¢‚ƃƒ‚ƒŠƒAƒNƒZƒX‚Ì’x‚³‚ªƒlƒbƒN‚ɂȂÁ‚Ä‚ ‚Ü‚è–ð—§‚œ‚È‚¢B

335:EÍEj‚Á-›œ
07/06/01 01:12:44
SIMD‚Å‘g‚Ý’Œ‚¹‚ΕW€ŠÖ”‚̃Xƒ‹[ƒvƒbƒg‰z‚Ђ邱‚ƂȂñ‚Ăނç‚É‚ ‚邿B
‚ ‚­‚Ü‚ÅSIMDŽg‚€‚©‚炱‚»ˆÓ–¡‚ª‚ ‚é‚ñ‚Ÿ‚¯‚ǁB

336:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 01:24:31
‚Ö-‚»‚€‚È‚ñ‚ŸB
‚Æ‚·‚ê‚ÎŽŽ‚µ‚Ă݂鉿’l‚ ‚é‚ȁB

exp‚̃jƒ…[ƒgƒ“‚ÍŠÈ’P‚»‚€‚Ÿ‚µBBB
‰Šú’l‚Ç‚€‚·‚é‚©‚È

337:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 01:33:41
‹à—Z‚Ì–â‘è‚Á‚ÄŽû‘©‚ª’x‚¢ƒ‚ƒ“ƒeƒJƒ‹ƒ‚łǂ€‚É‚©‚È‚é‚Ì‚©B

338:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 01:37:50
Žg‚í‚È‚¢‚Å‚·‚߂΂»‚ê‚É‚±‚µ‚œ‚±‚Ƃ͂Ȃ¢B
‰ðÍ“I‚É‹‚ß‚é•û–@‚ª‚È‚¯‚ê‚΃‚ƒ“ƒeƒJƒ‹ƒ‚ðŽg‚€‚µ‚©‚È‚¢B
‚Æ‚¢‚€——R‚ÅŽg‚í‚ê‚éB

339:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/01 09:24:19
Œ‹‹Ç‹à—Z‚ɂ͒ŒÚŠÖŒW‚È‚¢•”•ª‚̘b‚ɂȂÁ‚¿‚á‚Á‚œ‚ˁB

340:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/02 00:29:40

>>335
‚æ‚­l‚Š‚œ‚ç@f(x)=exp(x)‚Ł@f'(x)=exp(x)‚Ÿ‚©‚çexp‚ðƒjƒ…[ƒgƒ“‚Å‹‚ß‚é‚͖̂³—‚Ÿ‚ȁB
@
ƒe[ƒ‰[“WŠJ‚Å‚â‚Á‚Ă݂œ‚ñ‚Ÿ‚ª
Eƒe[ƒ‰[“WŠJŽ®@exp(x)=‡”x^n/n!
EŠKæ•”•ª‚ð‚·‚×‚Ä‰Šú’lÝ’è
0!:n0=1
1!:n1=1
2!:n2=2
EEE
x:“ü—Í’l
expsse:‹‚ß‚é’l

x=_mm_mul_pd(x,x);
expsse=_mm_add_pd((expsse, _mm_div_pd(x, n0));
x=_mm_mul_pd(x,x);
expsse=_mm_add_pd((expsse, _mm_div_pd(x, n1));
x=_mm_mul_pd(x,x);
expsse=_mm_add_pd((expsse, _mm_div_pd(x, n2));
EEE

‚±‚ñ‚ÈŠŽ‚¶Bfor•ªŽg‚킞n=20‚܂łâ‚Á‚Đž“x‚XŒ…‚­‚ç‚¢‚Ÿ‚Á‚œ‚©‚ȁB
‚µ‚©‚µˆ—ŽžŠÔ‚Í”ñí‚É’x‚©‚Á‚œB
ŽžŠÔ‚ª‚È‚©‚Á‚œ‚̂ł ‚Ü‚èÚ‚µ‚­’²‚ׂȂ©‚Á‚œ‚ªƒR[ƒfƒBƒ“ƒO‚É–â‘è‚ ‚é‚©‚ȁH


341:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 01:32:46
Visual C++ 2005 ‚Å ssse3 ‚Ì intrinsics ‚ªŽg‚Ђ邿‚€‚Ÿ

342:EÍEj‚Á-›œ
07/06/05 06:08:53
‚¢‚‚̂܂ÉSSSE3‚܂Ŏg‚Ђ邿‚€‚ɂȂÁ‚œ‚Ì‚©
ƒCƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚̃j[ƒ‚ƒjƒbƒN‚ÍŽg‚Š‚é‚ª


343:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 14:01:57
>342
‚š‘O‚ª>333‚Ńlƒ^U‚Á‚œ‚ñ‚Ÿ‚©‚çÓ”C‚à‚Á‚Ä>340‚̃tƒHƒ[‚µ‚ë‚â

344:EÍEj‚Á-›œ
07/06/05 19:50:20
ƒŒƒCƒeƒ“ƒV‚̃`ƒFƒCƒ“‚ª‚ ‚é mulpdšdivpdšaddpd
‘Ώۃf[ƒ^‚ª•¡”‚ ‚é‚Ȃ畡”ƒCƒ“ƒ^[ƒŠ[ƒu‚·‚邯ƒXƒ‹[ƒvƒbƒg‚ª‰Ò‚°‚Ü‚·B

345:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 20:33:01
>>344
‚»‚Ì—˜_‚ōs‚¯‚ÎSPE‚̃XƒJƒ‰‚à‘œ‚­‚̓Xƒ‹[ƒvƒbƒg1ƒNƒƒbƒN‚ŏˆ—o—ˆ‚é‚ñ‚Ÿ‚ª‚ȁB
‚[‚©x86‚É‚»‚Ì—˜_‚ð“K—p‚·‚é‚ɂ̓ŒƒWƒXƒ^‚ª‘«(ry

346:EÍEj‚Á-›œ
07/06/05 20:34:12
ƒŒƒWƒXƒ^ƒŠƒl[ƒ€

347:EÍEj‚Á-›œ
07/06/05 20:39:13
XOR‚Ń[ƒƒNƒŠƒA‚µ‚œ‚èiCore 2‚©‚çSIMDƒŒƒWƒXƒ^‚É‚à“K—pj
ƒf[ƒ^ˆÚ“®i•”•ªƒf[ƒ^ˆÚ“®‚Í•s‰Âj‚·‚邯ƒŒƒWƒXƒ^ƒŠƒl[ƒ€‚̃qƒ“ƒg‚ɂȂé

SIMDƒŒƒWƒXƒ^‚Í“à•”“I‚É80’ö“x‚Í‚ ‚é‚©‚ç‚»‚±‚»‚±‚¢‚¯‚é‚ñ‚łȂ¢H


Cell‚̉‰ŽZƒ†ƒjƒbƒg‚ÍIntelƒA[ƒL‚Ì‚»‚ê‚Ì”{‚̃ŒƒCƒeƒ“ƒV‚ª‚©‚©‚éB
SPE‚̃XƒJƒ‰‚ª«”\‚łȂ¢‚̂́A‚»‚à‚»‚àƒxƒNƒ^‰»‚·‚ço—ˆ‚È‚¢ƒf[ƒ^‚ð
•À—ñˆ—‚ŃŒƒCƒeƒ“ƒV‰B•Á‚·‚é‚ɂ͌ÀŠE‚ª‚ ‚é‚©‚çB


348:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 21:00:36
‰‰ŽZŠí‚ªæ‚ɃXƒg[ƒ‹‚·‚éB

349:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 21:06:06
˜A“ŠŽž—çB
ƒŒƒWƒXƒ^ƒŠƒl[ƒ€‚Æ‚©‚Á‚ÄŒŸ‚Á‚Ä‚él‚̃R[ƒh‚̏‘‚«•û‚É‹»–¡‚ª‚ ‚éB
‚æ‚Á‚ۂǃRƒ“ƒpƒNƒg‚ȉ‰ŽZ‚¶‚á‚È‚¢ŒÀ‚艉ŽZŒ‹‰Ê‚ðƒŒƒWƒXƒ^‚©‚ç’Ç‚¢o‚³‚È‚«‚á‚¢‚¯‚È‚¢‚ÆŽv‚€‚ñ‚Ÿ‚ªB

350:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 21:36:42
–â‘è‚͏\•ª‚Ȑž“x‚ª“Ÿ‚ç‚ê‚È‚¢‚±‚Æ‚Ÿ‚ÆŽv‚€

‘¬“x‚ðã‚°‚邱‚Ƃ͂»‚ñ‚Ȃɓ‚­‚È‚¢

’萔œŽZ‚ð‹t”‚Ƃ̏æŽZ‚É’u‚«Š·‚Š‚é
«
a4*x^4 +a3*x^3 +a2*x^2 +a1*x + a0
«
(((a4*x+a3)*x+a2)*x+a1)*x+a0
«
tmp=a[N]
for(i=N-1;i>=0;i--) tmp=tmp*x+a[i]
«
(‰Šú‰»•”•ª‚͏ȗª)
LOOP:
mulpd xmm4, xmm0
mulpd xmm5, xmm1
mulpd xmm6, xmm2
mulpd xmm7, xmm3
addpd xmm4, [esi]
addpd xmm5, [esi]
addpd xmm6, [esi]
addpd xmm7, [esi]
add esi, 16
sub ecx, 1
jnz LOOP

351:EÍEj‚Á-›œ
07/06/05 21:50:00
‚¢‚⏜ŽZ‚͋ߎ—’l–œ—ß‚Ÿ‚©‚çæŽZ‚É’u‚«Š·‚Š‚é‚Ÿ‚¯‚Å‚ ‚é’ö“x
ž“xŠm•Û‚Å‚«‚é‚ñ‚¶‚á‚È‚¢‚́H

Intel‚Íx87”{ž“x‚Í“à•”“I‚É80ƒrƒbƒgž“x‚É“WŠJ‚µ‚ďˆ—‚µ‚Ă邯‚Ç
SSE‚͐ž“x“xŠOŽ‹‚µ‚Ä‚œ‚æ‚€‚ȁB
ž“x‚ª•K—v‚È‚çx87‚̂ق€‚ª‚¢‚¢‚©‚à‚µ‚ê‚È‚¢

352:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 22:11:04
‹ßŽ—’l‚Ȃ̂Írcpps,rsqrtps–œ—߂ŁA
divps‚͋ߎ—’l‚¶‚á‚È‚¢‚ñ‚¶‚á‚È‚¢H

353:EÍEj‚Á-›œ
07/06/05 22:21:41
‚¢‚â‹ßŽ—’lB“à•”“I‚É‹t”‹ßŽ—’l‚ƏæŽZ‚µ‚Ă邟‚¯B

354:EÍEj‚Á-›œ
07/06/05 22:22:19
‚¿‚Ȃ݂ɖ{•š‚̏œŽZ‚͉œ\ƒNƒƒbƒN‚à‚©‚©‚è‚Ü‚·‚©‚çB

355:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 22:28:36
>>353
‚»‚̃\[ƒX‚́H
rcpps‚̃ŒƒCƒeƒ“ƒV‚Æmulps‚̃ŒƒCƒeƒ“ƒV‚ð‘«‚µ‚Ä‚à
divps‚̃ŒƒCƒeƒ“ƒV‚æ‚肞‚Á‚Æ’Z‚¢‚æB
ƒCƒ“ƒeƒ‹‚Ì–œ—߃Zƒbƒgƒ}ƒjƒ…ƒAƒ‹‚É‚Í
rcpps,rsqrtps‚Ìà–Ÿ‚ɂ͋ߎ—’l‚Å‚ ‚邯–Ÿ‹L‚µ‚Ä‚ ‚邯‚ǁA
divps‚ɂ͋ߎ—’l‚È‚ñ‚ď‘‚¢‚ĂȂ¢‚æB

356:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 22:32:08
x87‚ð”äŠr‘Ώۂɂµ‚Ä‚é‚Å‚µ‚åB
‚»‚ç80bit‚Ȃ牜\ƒNƒƒbƒN‚à‚©‚©‚é‚í‚ȁB

357:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 23:08:46
>>350
ƒXƒ}ƒ“A‹³‚Š‚Ä‚Ù‚µ‚¢
iƒAƒZƒ“ƒuƒ‰‚Í‹êŽè‚È‚Ÿ‚ª)‘œ€Ž®‹ßŽ—‚̃pƒ^ƒ“‚͘aŽZšæŽZ‚ÌŒJ‚è•Ô‚µ‚Å‚â‚邵‚©‚È‚¢‚Æ‚¢‚€”Fޝ‚Ȃ̂Ÿ‚ª
æŽZ‚ðæ‚É4‚‚â‚Á‚āA‚ ‚Æ‚©‚ç˜aŽZ4‚s‚€‚Á‚ÄŒvŽZ‚͉”\‚Ȃ̂©H

358:>>357
07/06/05 23:13:47
>>344
> ‘Ώۃf[ƒ^‚ª•¡”‚ ‚é‚Ȃ畡”ƒCƒ“ƒ^[ƒŠ[ƒu‚·‚邯ƒXƒ‹[ƒvƒbƒg‚ª‰Ò‚°‚Ü‚·B


359:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/05 23:31:26
>>358
‚»‚€‚¢‚€Žè‚ª‚ ‚é‚Ì‚©
ƒTƒ“ƒNƒX


360:EÍEj‚Á-›œ
07/06/06 00:30:48
>>340‚Æ>>350‚ÌŽ®‚ªˆê’v‚µ‚ĂȂ¢‹C‚ª‚·‚é‚Ì‹C‚Ì‚¹‚¢H


361:EÍEj‚Á-›œ
07/06/06 00:31:53
>>355
‚·‚Ü‚ñ‚»‚€‚Ÿ‚Á‚œ‚©‚àB
‚œ‚Ÿ‰Œ”•”‘S•”Œµ–§‚É‹‚ß‚é‚قǐž“x‚È‚©‚Á‚œ‚ÆŽv‚€

362:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/06 00:34:38
>>360
•Ê•šBƒe[ƒ‰[“WŠJ‚ƃ`ƒFƒrƒVƒFƒtŒn‚̈ႢB

363:350
07/06/06 01:01:20
>>360
>>340‚̃e[ƒ‰[“WŠJŽ®‚Æintrinsics‚ł̎À‘•‚ªˆê’v‚µ‚Ä‚¢‚È‚¢

364:340
07/06/06 19:11:56
>>344
‰ñ“š‚ ‚è‚ª‚Æ‚€B
‰Ž‚Ì’mޝ‚ł͂¢‚܈ê‚•ª‚ç‚ñ‚ª–œ—߂̕À‚я‡‚ɍH•v‚ª‚¢‚邯‚¢‚€‚±‚Æ‚Æ
‘Œ‚̃f[ƒ^‚à“¯Žž‚ɏˆ—‚Å‚«‚œ‚ç“¯Žž‚ɍs‚€‚Æ‚¢‚€‚±‚Æ‚©‚ȁB

>>363
Šm‚©‚ɍŏ‰‚ª‚Ü‚¿‚ª‚Á‚Æ‚éB‹Lqƒ~ƒX‚Ȃ̂ł«‚É‚µ‚È‚¢‚Å‚­‚Ÿ‚Í‚êB
‚܁Aexpij‚Ÿ‚Ƌߎ—Ž®‚Å‚â‚Á‚œ‚Ù‚€‚ª‘¬‚»‚€‚Ÿ‚ˁB

365:340
07/06/06 19:15:18
‚Æ‚±‚ë‚Å‹à—ZƒVƒXƒeƒ€‚ð‚â‚él‚œ‚¿‚Í‚±‚̕ӂ̋Zp‚ð
‚Ù‚Æ‚ñ‚Ç’m‚ç‚È‚¢‚Ì‚Ÿ‚¯‚ê‚ÇŠF‚³‚ñ‚͂ǂ̕ª–ì‚Å‚â‚ç‚ê‚Ä‚é‚̂łµ‚å‚€‚©H

366:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/06 21:54:11
M†ˆ—‚Æ‚©ƒQ[ƒ€‚¶‚á‚È‚¢‚©‚ȁB
‹t‚É•·‚«‚œ‚¢‚̂́A‹à—Z‚Ì•ª–ì‚ʼnž—pŒø‚­‚́H
Œ…”‚ª•K—v‚Ÿ‚ë‚€‚µAƒXƒs[ƒh‚æ‚è‚à‰Â“ǐ«‚ª‹‚ß‚ç‚ê‚»‚€‚¶‚á–³‚¢H

367:340
07/06/06 23:23:51
‹à—Z‚ł͍ŋ߈ꕔƒOƒŠƒbƒh‚ª“±“ü‚³‚ꂟ‚µ‚œ‚æ‚€‚Ÿ‚¯‚Ç
HPC•ª–ì‚͂قƂñ‚Ç–¢ŠJ‘ñ‚ȏó‘Ô‚Ÿ‚ÆŽv‚€B
‚Ü‚œSIMD‚Æ‚©MPI‚Ȃǂ͊OŽ‘ƒpƒbƒP[ƒWƒ\ƒtƒg‚̈ꕔ‚ł͎g‚í‚ê‚Ä‚¢‚éB

SE‚ւ́u‚à‚Á‚ÆŒvŽZ‚𑬂­‚Å‚«‚È‚¢‚©v‚Ƃ̗v¿‚ɑ΂µ
Ž©•ª‚Ì–³’m‚È‚±‚Æ‚à’m‚炞u”œ‘å‚È‹à‚ÆŽžŠÔ‚ª‚©‚©‚év‚̈ê“_’£‚è‚Ŏ󂯓ü‚ê‚ç‚ê‚È‚¢ƒP[ƒX‚ª‘œ‚¢B
‚±‚Ì‚œ‚ß‘œ‚­‚̃†[ƒU[‚͍‚‘¬‰»‚Í–³—‚È‚±‚ƂƎv‚Á‚Ä‚¢‚éB


‚Æ‚¢‚€ó‹µ‰ºA‘O‚É‚à‹“‚°‚œ‚æ‚€‚ÉƒŠƒXƒNŠÇ—‚âƒfƒŠƒoƒeƒBƒuŠÖ˜A‚Ȃǂł͍‚‘¬‰»‚ւ̃j[ƒY‚͍‚‚­A
‚±‚̕ӂ©‚çHPC‰»‚ªi‚ñ‚Å‚¢‚­‚ÆŽv‚€B
Œ»Žž“_‚ł́A‚·‚®—~‚µ‚¢ŒvŽZŒ‹‰Ê‚à‰ºŽè‚ð‚·‚é‚Æ”“ú‚©‚©‚邯‚¢‚Á‚œ‚±‚Æ‚ªA‚ ‚œ‚è‚Ü‚Š‚É‚š‚±‚È‚í‚ê‚Ä‚¢‚é‚©‚çEEE

368:EÍEj‚Á-›œ
07/06/06 23:36:08
‚Á‚Ä‚¢‚€‚©msdn2‚Ý‚œ‚¯‚Ç
VC++‚Ÿ‚Ɛ”ŠwŠÖ”‚ÍSSE2‘Ήž‚È‚çSSE2”ÅŽg‚Á‚Ä‚­‚ê‚邿‚€‚ɂȂÁ‚Ä‚é‚Ý‚œ‚¢H

ƒ³‚̍œK‰»ƒ‹[ƒ`ƒ“‚æ‚葬‚­‚µ‚æ‚€‚ƍl‚Š‚é‚̂͂ԂÁ‚¿‚Ⴏ‚©‚Ȃ薳–d‚©‚ƁB

369:340
07/06/06 23:57:04
exp()‚Í‚»‚ê‚Ù‚Ç–â‘è‚ɂȂÁ‚Ä‚¢‚È‚¢‚©‚ç‚¢‚¢‚ñ‚Ÿ‚¯‚Ç
–â‘è‚͏ã‚ɏ‘‚¢‚œ‚±‚ƂȂñ‚ŸB

ŠF‚³‚ñA‹à—ZƒVƒXƒeƒ€‚â‚ç‚È‚¢‚©‚¢H


370:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/07 01:16:32
ŽdŽ–‚É‚·‚é‹C‚͂Ȃ¢‚ª˜b‘è‚Æ‚µ‚Ä‹»–¡‚Í‚ ‚é‚ȁB
d‚œ‚¢‚Ì‚ÍDB‚Æ‚©‚ŁASIMD‰»‚·‚邿‚€‚È‚à‚̂ł͖³‚¢ƒCƒ[ƒW‚ª‚ ‚éB

371:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/07 01:19:32
‚»‚ñ‚Ȃ̃AƒvƒŠ‚É‚æ‚é‚̂ł́H

372:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/07 01:23:59
‘‚«ž‚݃^ƒCƒ~ƒ“ƒO‚à‘S‘̃pƒtƒH[ƒ}ƒ“ƒX‚ɂ͒ˆÓ‚ª•K—v

373:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/18 23:11:59
y”hŒ­ƒlƒKƒeƒBƒuª«ƒ`ƒFƒbƒNz

3‚ˆȏãAƒ`ƒFƒbƒN‚ª‚‚¯‚΃Aƒiƒ^‚̐«Ši‚͂Ђñ‹È‚ª‚Á‚Ä‚š‚èA
ƒlƒKƒeƒBƒu•‰‚¯‘g”hŒ­l¶‚ð•à‚ñ‚Å‚¢‚Ü‚·B

 ”hŒ­æ³ŽÐˆõ‚̍ì‚Á‚œ•³ŠJ”­ƒc[ƒ‹‚Í‚œ‚Æ‚Š•…‚Á‚ĂĂàƒ}ƒ“ƒZ[‚µ‚ÄŽg‚€
 ”hŒ­æ‚̐lŽ–Œ ‚Ì‚ ‚éŽÐˆõ‚̈ӌ©‚Í‚œ‚Æ‚ŠŠÔˆá‚Á‚Ä‚¢‚Ä‚àƒ}ƒ“ƒZ[‚·‚é
 ’‹H‚Í•K‚ž”hŒ­æ‚̎Јõ‚ƍs‚­‚ׂ«‚Ÿ
 ”hŒ­æ‚©‚çu‚¢‚Â‚Ü‚Å‚à‚±‚±‚ÅŽdŽ–‚µ‚Ä‚­‚Ÿ‚³‚¢‚Ë(ˆÀ‚¢‹à‚Å‚—)v‚ÆŒŸ‚í‚ê‚ÄŠð‚µ‚¢
 Ž©ŽÐ‚ÅŽdŽ–‚È‚ñ‚Ăł«‚é‚킯‚ª‚È‚¢
 ”hŒ­˜J“­‚Ì–â‘è“_‚̘b‘肪o‚é‚ÆŠŽî”‚«o‚µ‚É‚µ‚Ä”œ˜_‚·‚é
 ”hŒ­˜J“­‚Ì–â‘è‚ðŽw“E‚·‚él‚ÍŒ™‚¢‚Ÿ
 ”hŒ­æ‚ɂ͎dŽ–‚Ÿ‚¯‚łȂ­ƒvƒ‰ƒCƒx[ƒg‚ɂ‚¢‚Ä‚àƒOƒCƒOƒCˆø‚Á’£‚Á‚Ä—~‚µ‚¢
 šø‚Á‚Ä‚­‚ê‚é”hŒ­æ³ŽÐˆõ‚𑞌h‚·‚é
 Ž©•ª‚ÌŒŽŠz‹àŠz‚ð’m‚ç‚È‚¢‚͓̂–‘R‚ŸA’P‹à‚ð•·‚¢‚Ă͂¢‚¯‚È‚¢
 ”hŒ­æ³ŽÐˆõ‚æ‚莩•ª‚̐¶ŠUŽû“ü‚ª’á‚¢‚͓̂–‘R‚Ÿ
 ”hŒ­æ‚ɐK”ö‚ðU‚èA‚©‚í‚¢‚ª‚Á‚Ä‚à‚ç‚€‚±‚Æ‚ª‘吨‚Ÿ
 ƒ`ƒr‚Í”hŒ­æ‚É‚©‚í‚¢‚ª‚Á‚Ä‚à‚ç‚¢‚â‚·‚©‚ç”hŒ­‚ɂ͗L—˜‚Ÿ

374:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/22 00:18:26
‚Ë‚¥‚Ë‚¥‚±‚êSSEŽg‚Á‚Ä‚©‚¯‚éH

int RSHash(string cr)
{
int b = 378551; //Ramdom Ranges I've chosen (can be modified)
int a = 63689;
int hash = 0; //Output hash
int i; //Temp number that scrolls through the string array

for(i = 0; i < cr.length(); i++) //Loop to convert each character
{
hash = hash * a + cr[i]; //Algorithm that hashs
a = a * b;
}

return (hash & 0x7FFFFFFF); //Returns the hashed string
}

375:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/22 00:43:56
PMULUDQ‚©B
2‚‚̕¶Žš—ñ‚𓯎ž‚ɏˆ—‚·‚é‚È‚çŽg‚Ђ邩‚ȁH

376:EÍEj‚Á-›œ
07/06/22 00:54:28
int‚Í32ƒrƒbƒg‚ˁH

MMX/SSE2‚ÌŠ|‚¯ŽZ‚Í16ƒrƒbƒg~16ƒrƒbƒg‚܂łµ‚©‚Å‚«‚È‚¢‚©‚ç
”Œ’[‚ÉŽg‚Á‚Ä‚à‚©‚Š‚Á‚Ä’x‚­‚È‚é‚æ‚€‚ȁB

ˆË‘¶ŠÖŒW‚ª‚«‚ê‚¢‚É‰ðŒˆ‚Å‚«‚Äpmaddwd‚ª“K—p‚Å‚«‚ê‚Α¬‚­‚͂Ȃ肻‚€‚Ÿ‚ªB

377:EÍEj‚Á-›œ
07/06/22 00:55:54
>>375
‚ ‚ ‚»‚Á‚¿‚ª‚ ‚Á‚œ‚©‚Ç–Y‚ꂵ‚Ä‚œ

378:EÍEj‚Á-›œ
07/06/22 01:07:24
ƒ‹[ƒv‚Ì“à‘€‚ð‚Q”{‚Ɉø‚«L‚΂·‚Æ‚±‚€‚©H

hash = (hash * a * a * b) + (cr[i] * a * b) + cr[i+1];
a = a * b * b;

ˆø‚«L‚΂µ‚Ä‚¢‚¯‚ΕÀ—ñ‰‰ŽZ‚Å‚«‚»‚€‚ȂƂ±‚ë‚ÍŒ‹\‚ ‚é‚ñ‚Ÿ‚ªA‚³‚āEEE
‚ ‚ “ª‚¢‚Ä‚¥

379:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/22 01:46:48
SSE“ü–債‚œ‚¢‚̂ł·‚ª
‚Ý‚ñ‚Ȃǂ±‚©‚çŽè‚ð‚‚¯‚Í‚¶‚ß‚œ‚̂ł·‚©H

380:341
07/06/22 02:34:18
Žg‚¢•û
intrin.h‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚ÅSSE3‚Ìintrinsics‚܂ł͎g‚Š‚é
SSSE3‚Ìintrinsics‚ÍŽ©‘O‚ÅŠe–œ—ß‚ð’è‹`‚·‚邱‚ƂŎg‚Š‚æ‚€‚ɂȂé

—á
#include <intrin.h>
/* MMX */
__MACHINEX86X_NOWIN64(__m64 _mm_abs_pi8(__m64))
__MACHINEX86X_NOWIN64(__m64 _mm_sign_pi8(__m64, __m64))
__MACHINEX86X_NOWIN64(__m64 _mm_alignr_pi8(__m64,__m64, int))

/* XMM */
__MACHINEX86X_NOIA64(__m128i _mm_abs_epi8(__m128i))
__MACHINEX86X_NOIA64(__m128i _mm_sign_epi8(__m128i, __m128i))
__MACHINEX86X_NOIA64(__m128i _mm_alignr_epi8(__m128i,__m128i, int))

–â‘è“_
palignr–œ—ß‚Ì3”Ԗڂ̈ø”‚ª’萔‚Å‚àƒGƒ‰[‚ɂȂç‚È‚¢

381:341
07/06/22 02:38:44
>>380‚Ì’ù³
–â‘è“_
palignr–œ—ß‚Ì3”Ԗڂ̈ø”‚ª w’萔‚łȂ¢ê‡‚Ɂx ƒGƒ‰[‚ɂȂç‚È‚¢

382:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/22 15:15:51
>>379
‰Ž‚àÅ‰‚Í‚±‚ñ‚Ȃ̂©‚çŽn‚߂ē®ì‚ðŠm”F‚µ‚Ä‚¢‚Á‚œB
i‚±‚̏‘‚«•ûAa‚ªƒ|ƒCƒ“ƒ^‚©”z—ñ‚©‚Á‚Ä‹æ•Ê‚ª‚â‚₱‚µ‚¢‚ñ‚Ÿ‚ªj

#include<stdio.h>
int main()
{
int i,a[]={12,23,34,45};
__asm{
movdqu xmm0,a
paddd xmm0,xmm0
movdqu a,xmm0
}
for (i=0; i<4; i++) printf("%d\n",a[i]);
return 0;
}

383:EÍEj‚Á-›œ
07/06/22 23:23:53
>>381
‚·‚Ü‚ñˆÓ–¡•s–ŸBƒGƒ‰[‚ɂȂç‚È‚¢‚È‚ç‚Ç‚ñ‚ȃR[ƒh“f‚­‚́H

384:341
07/06/23 00:28:50
’萔‚̏ꍇ
0f 3a 0f c1 01 palignr mm0, mm1, 1

’萔‚łȂ¢ê‡
0f 3a 0f c1 ac palignr mm0, mm1, DWORD PTR _i$[ebp]

385:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/23 09:10:46
IA-32 SIMDƒŠƒtƒ@ƒŒƒ“ƒX”ƒ‚Á‚Ă݂œB

}‚ª‚¢‚Ï‚¢Ú‚Á‚Ă邌w

386:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/24 09:40:42
>>340
exp(x)=2^(y1+y2)‚ƕϊ·‚·‚éiy1‚͐®”•”y2‚͏­”•”j
y2‚𑜍€Ž®‹ßŽ—‚Å‹‚߂邯‘¬‚­‚Å‚«‚é
10Œ…’ö“x‚̐ž“x‚ł悯‚ê‚Î7ŽŸ‚ʼn”\
>>465


387:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/28 12:38:59
>exp(x)=2^(y1+y2)‚ƕϊ·‚·‚éiy1‚͐®”•”y2‚͏­”•”j
‚»‚ê‚ð‚â‚é‚È‚çy1‚͐®”Ay2‚Í-0.5<=y2<0.5‚Æ‘I‚ñ‚Ÿ•û‚ª‚悳‚»‚€‚Ÿ‚ˁB


388:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/29 01:19:41
„„‚R‚W‚V
‚»‚€‚Ÿ‚ˁB
‚Æ‚±‚ë‚Å‚™‚P‚ª³‚̂Ƃ«‚̓rƒbƒgƒVƒtƒg‚ōs‚¯‚é‚ñ‚Ÿ‚ª
•‰‚ÌŽž‚Í‚¢‚¢•û–@‚È‚¢‚©‚ˁH

389:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/29 12:06:17
IA-32SIMDƒŠƒtƒ@ƒŒƒ“ƒXƒuƒbƒN
‚±‚ñ‚È–{‚ªo‚Ä‚é‚Ë

390:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/06/29 13:24:55
>>303-309

391:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/03 22:32:30
‘“X‚łςç‚Á‚ÆŒ©‚œŠŽ‚¶‚Å‚ÍSSSE3‚܂ŏЉ‚Ä‚é‚Ý‚œ‚¢‚Ÿ‚¯‚Ç
‚±‚ê‚łǂ€‚â‚Á‚ĉºŠª‚ð‘‚­‚‚à‚è‚È‚ñ‚Ÿ‚ë‚€

392:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/08 00:12:54
’N‚©SSE2‚Ércppd‚Ærsqrtpd‚ª‚È‚¢——R‚ð‡—“I‚Éà–Ÿ‚µ‚Ä‚­‚Ÿ‚³‚¢

393:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/08 00:20:39
‚ ‚Š‚Ä‹ßŽ—‰ð‚ðDouble‚ÅŽg‚€•K—v‚͂Ȃ¢‚©‚炟‚ë‚€

394:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/08 01:16:16
SSE‚Ìrcpps,rsqrtps‚Á‚Ä
b‘Š‘ÎŒë·b… 1.5~2^-12
‚Á‚ď‘‚¢‚Ä‚ ‚é‚©‚çA
‰Œ”•”12bit‚­‚ç‚¢‚̐ž“x‚µ‚©‚È‚¢‚Á‚ÄŽ–‚Ÿ‚æ‚ˁH

395:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/08 01:17:58
rcpps‚©‚ç‚à‚Á‚Ä‚¯‚é‚©‚çB–œ—ߐ”‚à”{‚ɂȂ邪‚ȁB
‚»‚µ‚Ä”{ž“x‚É‚»‚ñ‚ȃgƒ‰ƒ“ƒWƒXƒ^Š„‚¯‚È‚¢‚Æ‚¢‚€‚Ì‚ª‡—“I——R‚Ÿ‚ë‚€B

396:395
07/07/08 01:27:58
‚ [Žž—çBƒgƒ‰ƒ“ƒWƒXƒ^‚ðŠ„‚¯‚È‚¢‚Æ‚¢‚€Žå’£‚Í“¯‚¶‚È‚ñ‚Ÿ‚ª
Žd‘g‚݂Ƃµ‚Ă̓e[ƒuƒ‹‚ðˆø‚¢‚Ă邟‚¯‚̂͂žB
‚Ÿ‚©‚ç24bit‚Æ‚©32bit•ª‚à‚̃e[ƒuƒ‹‚ð—pˆÓo—ˆ‚é‚킯‚ª–³‚¢B

”{ž“x‚ðŽg‚€‚æ‚€‚Ȑl‚͐ž“xdŽ‹‚Ȃ킯‚ŁA
divpd‚ ‚é‚ñ‚Ÿ‚©‚ç‚Ç‚€‚µ‚Ä‚à‚â‚肜‚¢‚ñ‚Ÿ‚Á‚œ‚çƒ\ƒtƒgƒEƒFƒA‚Årcpps‚©‚琞“xã‚°‚Ä‚­‚êA
ƒ}ƒCƒNƒƒR[ƒh‚ð—pˆÓ‚·‚é‚̂̓oƒJƒoƒJ‚µ‚¢A‚Æ‚¢‚€‚±‚ƁB

397:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/08 01:42:11
>>396
”\‘‚«‚‚ê‚Ä‚é‚ñ‚Ÿ‚ª
Œ‹‹Ç393‚Ɖœ‚ªˆá‚€‚ñ‚Ÿ‚æ

398:395
07/07/08 08:28:15
>>397
ˆá‚¢‚Í–³‚¢B‚œ‚Ÿ393‚Ÿ‚¯ŒŸ‚í‚ê‚Ä‚à392‚ª”[“Ÿ‚µ‚Â炢‚Ÿ‚ë‚€B

ƒe[ƒuƒ‹‚Ì—v‘f”‚ª
12bit->4096
24bit->1677–œ
‚Ÿ‚¯•K—v‚Å‚ ‚邯l‚Š‚ê‚Î•š—“I‚É–³—‚ÈŽ–‚ª”[“Ÿo—ˆ‚éB

399:EÍEj‚Á-›œ
07/07/08 13:13:44
‚Ü‚ ƒ}ƒCƒNƒƒR[ƒh‘g‚ݍ‡‚킹‚ê‚΂ł«‚È‚­‚à–³‚¢‚Ÿ‚ë‚€‚¯‚Ç
ƒNƒƒbƒN”‚©‚©‚éã‚Ɂy‹ßŽ—z‰ð‚¶‚á‚Ë‚¥

400:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/09 22:20:07
>>389
‚±‚Ì–{”ƒ‚Á‚Ă݂œ‚¯‚ǁAƒŠƒtƒ@ƒŒƒ“ƒX‚¢‚€‚©‚ç–œ—ß‘S•”Ú‚Á‚Ä‚é‚Ì‚©‚ÆŽv‚Á‚œ‚çÚ‚Á‚ĂȂ©‚Á‚œ
ŽèŒ³‚ÉƒŠƒtƒ@ƒŒƒ“ƒX“I‚È‚à‚Ì‚ª‚ ‚邯‚¢‚¢‚ȂƎv‚Á‚Ä”ƒ‚Á‚œ‚̂ɁEEEŒ‹\‚Ÿ‚í[’Ž‚‚¢‚µ

401:”–‰˜‚¢”hŒ­‚̍‘A“ú–{
07/07/15 21:35:53
Å‹ßAEê‚Łuo–ß‚èŠñ¶”hŒ­v‚Æ‚¢‚€ŒŸ—t‚ªš‘‚©‚ê‚Ä‚¢‚Ü‚·B
”hŒ­Œ_–ñ‚ðØ‚ç‚ꂜ‚É‚à‚©‚©‚í‚炞uŽŸ‚Ì”hŒ­æ‚Å‚àØ‚ç‚ê‚Ä‚µ‚Ü‚Á‚Đ¶Šˆ‚Å‚«‚Ü‚¹‚ñv
‚È‚Ç‚Æ ŒŸ‚Á‚Ä‹ƒ‚«—Ž‚Æ‚µ‚ōČ_–ñ‚µ‚œ”hŒ­‚Ì‚±‚Ƃł·B
¡ŒŽ‰‚߁A”Œ”N‘O‚ɐ؂Á‚œ”hŒ­‚ªoŽÐ‚µ‚Ä‚«‚Ă݂ñ‚ȂтÁ‚­‚肵‚Ü‚µ‚œB
‰e‚ŃRƒ\ƒRƒ\ˆÌ‚¢l‚É‹ƒ‚«‚‚¢‚čČ_–ñ‚µ‚œ‚»‚€‚Å‚·B“¯‚¶•”‚̐l‚ɂ͖قÁ‚āEEE
‚»‚ñ‚È‚±‚Ƃ܂łµ‚ÄŽ©‘î‚̋߂­‚Ì”hŒ­æ‚É‚±‚Ÿ‚í‚Á‚ĐlŠÔ‚Æ‚µ‚Ä’p‚ž‚©‚µ‚­‚È‚¢‚̂ł·‚©B
”hŒ­‚ŃXƒLƒ‹ƒAƒbƒvA”hŒ­‚ÅŽû“üƒAƒbƒv‚Æ‚©ŒŸ‚€‚È‚çˆê‰ÓŠ‚É‚µ‚ª‚݂‚©‚ž
•¡”‚̉ïŽÐ‚ð“n‚è•à‚¢‚Ä‚­‚Ÿ‚³‚¢B
‚ЂƂ‚̉ïŽÐ‚Å”hŒ­Œü‚¯‚Ì’P’²‚ÈŽdŽ–‚ð‚µ‚Ä‚¢‚œ‚çƒXƒLƒ‹ƒAƒbƒv‚È‚ñ‚Ä‚ ‚肊‚È‚¢‚Å‚µ‚å‚€B
g•ª•s‘Љž‚ȏ€•i‚̃[ƒ“‚𕥂€‚œ‚߂ɔhŒ­‚Ÿ‚Æ“–‘R‘«‚è‚È‚¢Žû“ü‚͐e‚É‚àŠñ¶‚µ‚āA
‚¢‚؂ç‚ê‚é‚ñ‚¶‚á‚È‚¢‚©‚ƃrƒNƒrƒN‚µ‚È‚ª‚çlŽ–Œ ‚Ì‚ ‚élŠÔ‚Æ‚Ÿ‚¯’‡—Ç‚­‚µA
Œ_–ñI—¹‚ð’Ê’m‚³‚ê‚ê‚΋ƒ‚«—Ž‚Æ‚µB”ߎS‚Ȑl¶‚Å‚·‚ˁB
ށ‚ñ‚Ÿ‚Ù‚€‚ª‚¢‚¢‚ñ‚¶‚á‚È‚¢‚Å‚·‚©B


402:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/19 19:33:12
>>400
URLØÝž(download.intel.com)
‚±‚ê‚łЂЂâ‚ñB
‚ ‚Ƃ̓rƒ‹ƒgƒCƒ“ŠÖ”‚̃wƒbƒ_Œ©‚ê‚΂Ÿ‚¢‚œ‚¢‘‚¯‚邟‚ëB

403:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/21 21:32:10
y”hŒ­ƒlƒKƒeƒBƒuª«ƒ`ƒFƒbƒNz

3‚ˆȏãAƒ`ƒFƒbƒN‚ª‚‚¯‚΃Aƒiƒ^‚̐«Ši‚͂Ђñ‹È‚ª‚Á‚Ä‚š‚èA
ƒlƒKƒeƒBƒu•‰‚¯‘g”hŒ­l¶‚ð•à‚ñ‚Å‚¢‚Ü‚·B

 ”hŒ­æ³ŽÐˆõ‚̍ì‚Á‚œ•³ŠJ”­ƒc[ƒ‹‚Í‚œ‚Æ‚Š•…‚Á‚ĂĂàƒ}ƒ“ƒZ[‚µ‚ÄŽg‚€
 ”hŒ­æ‚̐lŽ–Œ ‚Ì‚ ‚éŽÐˆõ‚̈ӌ©‚Í‚œ‚Æ‚ŠŠÔˆá‚Á‚Ä‚¢‚Ä‚àƒ}ƒ“ƒZ[‚·‚é
 Žd—l‚Ƃ͐³ŽÐˆõ‚©‚çŒû“`‚³‚ê‚é‚à‚Ì‚Ÿ
 Œû“`‚³‚ꂜŽd—l‚ðˆÓ}‚Ç‚š‚藝‰ð‚Å‚«‚È‚©‚Á‚œ‚͎̂©•ª‚̐ӔC‚Ÿ
 ’‹H‚Í•K‚ž”hŒ­æ‚̎Јõ‚ƍs‚­‚ׂ«‚Ÿ
 Ž©•ª‚ÌŽdŽ–‚Å–â‘肪”­¶‚µ‚Ä‚à‰ðŒˆ‚·‚é‚͔̂hŒ­‚ÌŽdŽ–‚ł͂Ȃ¢
 ”hŒ­æ‚©‚çu‚¢‚Â‚Ü‚Å‚à‚±‚±‚ÅŽdŽ–‚µ‚Ä‚­‚Ÿ‚³‚¢‚Ë(ˆÀ‚¢‹à‚Å‚—)v‚ÆŒŸ‚í‚ê‚ÄŠð‚µ‚¢
 Ž©ŽÐ‚ÅŽdŽ–‚È‚ñ‚Ăł«‚é‚킯‚ª‚È‚¢
 ”hŒ­˜J“­‚Ì–â‘è“_‚̘b‘肪o‚é‚ÆŠŽî”‚«o‚µ‚É‚µ‚Ä”œ˜_‚·‚é
 ”hŒ­˜J“­‚Ì–â‘è‚ðŽw“E‚·‚él‚ÍŒ™‚¢‚Ÿ
 ”hŒ­æ‚ɂ͎dŽ–‚Ÿ‚¯‚łȂ­ƒvƒ‰ƒCƒx[ƒg‚ɂ‚¢‚Ä‚àƒOƒCƒOƒCˆø‚Á’£‚Á‚Ä—~‚µ‚¢
 šø‚Á‚Ä‚­‚ê‚é”hŒ­æ³ŽÐˆõ‚𑞌h‚·‚é
 Ž©•ª‚ÌŒŽŠz‹àŠz‚ð’m‚ç‚È‚¢‚͓̂–‘R‚ŸA’P‹à‚ð•·‚¢‚Ă͂¢‚¯‚È‚¢
 ”hŒ­æ³ŽÐˆõ‚æ‚莩•ª‚̐¶ŠUŽû“ü‚ª’á‚¢‚͓̂–‘R‚Ÿ
 ƒ`ƒr‚Í”hŒ­æ‚É‚©‚í‚¢‚ª‚Á‚Ä‚à‚ç‚¢‚â‚·‚©‚ç”hŒ­‚ɂ͗L—˜‚Ÿ


404:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/27 18:34:11
SSE2‚ŁAƒxƒNƒgƒ‹‚ÌŠe—v‘f‚²‚ƂɓƗ§‚ȃVƒtƒg—Ê‚ðÝ’肵‚ăVƒtƒg‚ðs‚€‚±‚Ƃ͕s‰Â”\
‚Æ‚¢‚€—‰ð‚Å—Ç‚¢‚Å‚·‚©?
a[0] <<= b[0]
a[1] <<= b[1]
a[2] <<= b[2]
a[3] <<= b[3]
‚Ý‚œ‚¢‚ÈŽ–‚ª‚â‚肜‚¢‚ñ‚Å‚·‚ªB

405:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/27 20:05:42
>>404
ˆ—‘¬“x‚Í—ò‚邪AƒVƒtƒg‚Ì‘ã‚í‚è‚ɏæŽZ‚ŏˆ—‚·‚邯‚©B

406:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/27 23:47:27
Žc”O‚È‚ª‚ç‚»‚ꂟ‚ƃXƒJƒ‰[‚æ‚è‚à’x‚­‚È‚Á‚Ä‚µ‚Ü‚¢‚Ü‚µ‚œB‚€[‚Þ

407:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/07/28 09:54:29
‚»‚€‚©B–Ê”’‚»‚€‚È–â‘è‚Ȃ̂ʼnœ‚Æ‚©‚µ‚č‚‘¬‰»‚µ‚œ‚¢‚È‚ B

408:EÍEj‚Á-›œ
07/07/29 02:13:32
>>404
‚€‚ñ–³—BAltiVec‚Ÿ‚Ƃł«‚é‚ñ‚Ÿ‚æ‚Ë‚»‚êB

409:EÍEj‚Á-›œ
07/07/29 02:26:32
‰ºˆÊƒrƒbƒg—Ž‚¿‚邯‚Ç‚±‚ñ‚Ȃ̂͂ǂ€H
cvttpi2psšŽw”•”‘€ìšcvttps2pi



410:341
07/08/25 01:58:03
VC++ 2008‚ÌIntrinsics‚Í
Intel SSSE3/SSE4.1/SSE4.2‚ÆAMD ABM/SSE4a‚ɑΉž‚µ‚Ä‚¢‚邿‚€‚Ÿ

411:EÍEj‚Á-›œ
07/08/25 03:04:10
Intel‚Å‚¢‚€‚Æsmmintrin.h‚Á‚Ä“z‚©B



‚È‚ÉS‚Á‚āB

412:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/08/26 11:25:57
Žž—炵‚Ü‚·B

MMX‚̃VƒtƒgŒn‚Ì–œ—ß‚Á‚āAƒ\[ƒXƒIƒyƒ‰ƒ“ƒh‚É’Œ’lAƒƒ‚ƒŠAMMƒŒƒWƒXƒ^‚݂̂ł·‚æ‚ˁH

”Ä—pƒŒƒWƒXƒ^ieax‚Æ‚©j‚ð‘‚¢‚Ä‚à‚€‚Ü‚­“®ì‚µ‚È‚©‚Á‚œ‹C‚ª‚·‚é‚ñ‚Å‚·‚ªA
VC6,VC8‚Æ‚à‚ɁAˆÈ‰º‚̃R[ƒh‚ªƒGƒ‰[‚ɂȂ炞’Ê‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·B

psllq mm0 , eax

‰œ‚©Ššˆá‚¢‚µ‚Ă܂·‚©H

413: Ÿ0uxK91AxII
07/08/26 13:46:03
>>412
disassemble‚µ‚Ă݂œ‚܂ЁB

414:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/08/26 14:50:52
>>413
eax‚Á‚ď‘‚¢‚œ‚Æ‚±‚낪mm0‚ɂȂÁ‚Ă܂µ‚œB

ƒCƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚̃oƒOH@VC6‚Ì‚±‚ë‚©‚ç‚»‚€‚Ȃ̂É
VC8‚Å‚à•ú’u‚µ‚Ä‚é‚̂͂Ȃñ‚©——R‚ª‚ ‚é‚Ì‚©‚ȁB

415:EÍEj‚Á-›œ
07/08/26 17:02:22
mm0‚àeax‚à3ƒrƒbƒg•\Œ»‚Ì 0 ‚Ÿ‚à‚́B
”Ä—pEFP/MMEXMM‚̃ŒƒWƒXƒ^Žw’è‚Íopcode‚ÅŒˆ‚܂邩‚ç

416:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/08/26 17:31:27
>>415
‹tƒAƒZ‚µ‚Ämm0‚ÉŒ©‚Š‚é——R‚ª‚»‚ꂟ‚Æ‚µ‚Ä‚àAƒAƒZƒ“ƒuƒ‰‚Ì•¶–@
‚Æ‚µ‚Äeax‚Á‚ď‘‚­‚ׂ«‚ł͂Ȃ¢‚Æ‚±‚ë‚ɁA‚»‚€‘‚¢‚ăGƒ‰[‚É‚µ‚È‚¢
‚Ì‚Í‚š‚©‚µ‚¢‚ÆŽv‚¢‚Ü‚¹‚ñ‚©H

417:EÍEj‚Á-›œ
07/08/26 17:32:25
movd eax mm0‚Æ
movd mm0, eax

‚Ÿ‚Ƃǂ€‚Ȃ邩‚ȁBopcode‚Å‹æ•Ê‚µ‚Ä‚é‚Í‚ž‚Ÿ‚ª

418:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/08/26 17:44:31
‚»‚Ì–œ—߂͌©‚œ–Ú‚Ç‚š‚è‚É“®‚­‚̂ŁA“Á‚É‚¢‚€‚±‚Ƃ͂ ‚è‚Ü‚¹‚ñB


419:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/08/30 17:09:15
>>404
AMD‚ª”­•\‚µ‚œSSE5‚œƗ§ƒVƒtƒg—Ê‚ª‚Å‚«‚邿‚€‚ɂȂé‚ˁB
SIMD‚̃[ƒe[ƒg–œ—߂܂ŒljÁ‚³‚ê‚Ä‚éB
URLØÝž(developer.amd.com)

420:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/09/02 04:12:12
‚à‚€32bit fp‚Ɛ®”‚ÍAltiVecŒÝŠ·‚É‚µ‚Ä‚­‚ê‚æ
AltiVec‚©‚çSSE‚ÉŽd•û‚È‚­ˆÚ‚Á‚œƒ}ƒJ[‚È‰Ž‚É‚ÍSSE‚ÍŽg‚¢‚É‚­‚·‚¬‚é

421:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/09/02 04:17:13
‚Å‚àload/store‚̃Aƒ‰ƒCƒ“ƒƒ“ƒg‚̈µ‚¢‚ªŠy‚Ȃ̂͂¿‚å‚Á‚Æ‚¢‚¢‚ÆŽv‚Á‚œ

422:EÍEj‚Á-ƒƒR:œc-
07/09/04 07:15:10
SSE4.1‚ÅXMM-”Ä—pƒŒƒWƒXƒ^ŠÔ‚̃f[ƒ^o‚µ“ü‚ꂪŠÈ’P‚ɂȂ邩‚çƒVƒtƒg‚⃍[ƒe[ƒg‚͉䖝B


423:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/09/05 23:49:14
>>422
‚à[o‚Ä‚é‚È‚ç‰ä–‚Å‚«‚邯‚Ç‚³A‚Ü‚Ÿo‚ĂȂ¢‚¶‚á‚ñB

424:EÍEj‚Á-ƒƒR:œc-
07/09/06 00:47:16
‚»‚ꌟ‚Á‚¿‚á‚€‚ÆBulldozer‚Í‚š‚ë‚©Barcelona‚·‚ço‚ĂȂ¢‚ª


425:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/19 17:12:17
MMX‚Ìpmull, pmulh‚͂ǂ€‚¢‚€Žg‚¢•û‚ª‘z’肳‚ê‚Ä‚¢‚é‚̂łµ‚å‚€‚©H
‚È‚ñ‚©Žg‚¢‚É‚­‚»‚€‚ÉŽv‚Š‚é‚̂ł·‚ªccB

426:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/19 19:17:59
>>425
pmull : 16 bit ‚ōςގž
pmulh : ¬”•” 16 bit ‚̌Œ菬”“_æŽZ‚µ‚œ‚¢Žž


427:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/10/20 01:26:21
xbyak‚𖂉ü‘¢‚·‚é‚©

428:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/24 22:36:46
IA-32 SIMDƒŠƒtƒ@ƒŒƒ“ƒXƒuƒbƒNƒ‰º„
URLØÝž(www.cutt.co.jp)

SSSE3‚Ü‚Å
SSE4‚͂Ȃ¢

429:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/24 22:52:02
‚Ÿ‚©‚獂‚¢‚Á‚āB

430:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/25 01:49:44
‚Ú‚Á‚œ‚­‚è‚Å‚»‚ê‚©Bƒ}ƒW‚¢‚ç‚ñB

431:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/10/25 01:55:23
SDK for 45nm Next Generation Intel Core 2 Processor Family and Intel SSE4

‚ÉSSE4.1/4.2‚̃}ƒjƒ…ƒAƒ‹ˆêŽ®‚ƃGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“DLL‚ª‚‚¢‚Ă邩‚ç‚»‚ê‚ŏ\•ªB

432:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/27 05:20:50
‘˜a‚ð‹‚ß‚é‚ȂǁAˆê‚‚̕ϐ”‚ª‹€’ʂ̏ꍇASSE‚ðŽg‚Á‚ÄŒvŽZ‚·‚éCƒR[ƒh‚ð‹³‚Š‚Ä‚­‚Ÿ‚³‚¢


433:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/10/28 02:23:19
‘˜a‚È‚çŠÈ’P‚¶‚á‚ñ

__declspec(align(16)) float a[100];
float dest;

//SIMD‰»‘O
for (int i = 0; i < 100; i++) {
sum += a[i];
}

//SIMD‰»Œã
__m128i sumx = { 0.0f,0.0f,0.0f,0.0f };
for (int i = 0; i < 100; i++) {
sumx = _mm_add_ps(sum, *(__m128*)&a[i*4]));
}
sumx = _mm_hadd_ps(sumx, sum);
sumx = _mm_hadd_ps(sumx, sum);
_mm_store_ss(sum, sumx);

434:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/10/28 02:24:14
’ù³

//SIMD‰»Œã
__m128i sumx = { 0.0f,0.0f,0.0f,0.0f };
for (int i = 0; i < 100; i+=4) {
sumx = _mm_add_ps(sumx, *(__m128*)&a[i]));
}
sumx = _mm_hadd_ps(sumx, sum);
sumx = _mm_hadd_ps(sumx, sum);
_mm_store_ss(sum, sumx);

435:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/31 21:29:38
movq‚ɑΉž‚·‚é‘gž‚݊֐”‚Á‚ĂȂ¢‚ñH

436:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/31 21:57:18
_mm_loadl_epi64

437:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/10/31 22:03:36
ƒ°(EƒÖEÉ)ɃGƒb

438:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/01 00:19:03
__m128i _mm_loadl_epi64(__m128i*)
__m128i _mm_move_epi64(__m128i)
void _mm_storel_epi64(_m128i*, __m128i)

439:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/01 02:28:07
sse4‚̃xƒ“ƒ`Œ©‚Ă邯‚¿‚å‚Á‚ƐS”z‚ɂȂÁ‚Ä‚­‚é‚ȁB

440:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/11/01 23:00:54
>>435
MMX‚͖̂³‚¢B
__m64 mm0 = a[i]‚ÅŠù‚Ƀ[ƒh‚É“WŠJ‚³‚ê‚éB‚Ä‚©AƒRƒ“ƒpƒCƒ‰”C‚¹B

441:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/14 19:03:24
x86‚̘b‚È‚ñ‚Å‚·‚ª

64ƒrƒbƒg®”‚̃Oƒ[ƒoƒ‹•ϐ”1‚‚𑀍삷‚éŠÖ”‚ª
•p”ɂɌĂ΂ê‚éƒvƒƒOƒ‰ƒ€‚ðì‚Á‚Ä‚¢‚Ü‚·B
ƒAƒZƒ“ƒuƒ‰Œ©‚邯A32ƒrƒbƒg‚ž‚‘€ì‚µ‚Ä‚¢‚邿‚€‚È‚ñ‚Å‚·‚ª
‚±‚ê‚ðMMX‚ðŽg‚Á‚Ä‚¢‚Á‚Ø‚ñ‚É‘€ì‚·‚邿‚€‚É‚·‚ê‚΁A‚‘¬‰»‚µ‚Ü‚·‚©H

‚‘¬‰»‚·‚é‚È‚çAMMX•׋­‚µ‚Ă݂悀‚©‚ȂƎv‚Á‚Ä‚é‚̂ł·‚ªB

442:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/14 19:57:23
‚µ‚Ü‚¹‚ñ

443:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/14 19:59:23
and‚Æ‚©or‚Æ‚©ƒrƒbƒg‰‰ŽZ‚Ÿ‚¯‚È‚ç‰Â”\«‚ª‚È‚¢‚Æ‚àŒŸ‚Š‚È‚¢B

444:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/11/14 22:10:28
>>441
double ‚Å‚â‚ê‚΁[?

445:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/11/14 23:38:44
ŠÖ”ƒR[ƒ‹‚̃Cƒ“ƒ‰ƒCƒ“‰»‚̂ق€‚ª‚Ü‚ŸŒø‰Ê‚ ‚é‚©‚à‚È

446:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/22 23:14:35
2‚‚Ì4byte‚̃f[ƒ^‚ðæ“ª‚©‚ç”CˆÓ‚Ì
ƒrƒbƒg”ˆê’v‚µ‚Ä‚¢‚é‚©ƒ`ƒFƒbƒN‚·‚é‚Ì‚É
SSE‚Á‚Ä—LŒø‚ÉŽg‚Š‚»‚€H1ƒrƒbƒg‚ž‚ƒ`ƒFƒbƒN
‚Æ‚©ƒAƒz‰ß‚¬‚Ä

uint32_t chk_bit(uint32_t master, uint32_t src, uint32_t bit){
‚±‚Ì’†‚Ç‚€‚µ‚æ‚€B
}

447:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/22 23:53:57
y‚±‚Ì’†z
return ((master ^ src) >> (32 - bit)) != 0;

448:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 00:16:33
xmmƒŒƒWƒXƒ^‚ð128bit int‚Æ‚µ‚ÄŽg‚€ê‡C
‚ ‚ébit‚ª—§‚Á‚Ä‚¢‚é‚©‚Ç‚€‚©‚ð‚‘¬‚É’²‚ׂé•û–@‚Í‚ ‚è‚Ü‚¹‚ñ‚©H
SSE4.1‚Åptst–œ—ß‚ª“±“ü‚³‚ê‚Ü‚·‚ªC‚»‚ê‚܂ő҂Á‚Ä‚ç‚ê‚Ü‚¹‚ñD

449:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 00:30:38
xmm0‚É’²‚ׂœ‚¢’l‚ª‚ª‚ ‚邯‚·‚ê‚Î

movdqa xmm1, [pattern]
movdqa xmm2, xmm0
pand xmm2, xmm1
pcmpeqb xmm2, xmm1
pmovskb eax, xmm0
test eax, eax

‚Åeax‚ª0ˆÈŠO‚È‚çƒrƒbƒg‚ª—§‚Á‚Ä‚éB

450:R„LÍMƒ,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 00:31:51
pmovmskb‚É’ù³‚µ‚Ä‚­‚Ÿ‚µ‚ „ƒ

451:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 00:46:27
THX
‚â‚Í‚èpmovmskb‚ňڂ·‚µ‚©‚ ‚è‚Ü‚¹‚ñ‚©DDD
Nehalem‚܂łÍ64bit int x 2‚Å‚â‚Á‚Æ‚­‚Ì‚ª‹gH

452:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 11:21:12
ptest‚ÍPenryn‚¶‚á‚ˁH

453:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 13:14:13
LARGE_INTEGER otime, ntime;
`—ª`
double dt = (double)((ntime.QuadPart - otime.QuadPart) * (1000.0f / f.QuadPart));

‚ðSSEŽg‚Á‚ÄVC8‚̃Cƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚ŏ‘‚­‚Ƃǂ€‚È‚è‚Ü‚·‚©H


454:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 19:38:49
‚Ç‚€l‚ЂĂàƒXƒJƒ‰‰‰ŽZ‚Ÿ‚æ‚Ë

455:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 20:04:35
64bit®”‚ð64bit•‚“®¬”“_”‚ɕԊ҂·‚éSSE–œ—ß‚Í
64bitƒ‚[ƒh‚É‚µ‚©‚ ‚è‚Ü‚¹‚ñ
VC‚Å‚Í64bitƒ‚[ƒh—p‚̃vƒƒOƒ‰ƒ€‚ɃCƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚ÍŽg‚Ђ܂¹‚ñ

456:R„LÍMƒ,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 20:30:13
*intrin.h‚̃}ƒjƒ…ƒAƒ‹‚ðŒ©‚ê‚΂¢‚¢‚ÆŽv‚€‚ª

457:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 20:32:45
SSE‚ŏ‘‚­—˜“_‚È‚­‚ˁH

458:R„LÍMƒ,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 20:37:16
–³‚¢‚È

459:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 20:58:49
‘‚¯‚Ä‚àŽèŠÔ‘¹

460:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 21:00:24
ƒtƒ@ƒCƒ„[ƒEƒH[ƒ‹ì‚鎞‚É
ƒpƒPƒbƒg‰ðÍ‚·‚é‚Ì‚ÉSSEŽg‚Á‚Ä‚à
ŽèŠÔ‚ɂȂ邟‚¯H

461:R„LÍMƒ,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 21:02:06
‚»‚ë‚»‚ëƒeƒ“ƒvƒŒì‚Á‚œ‚Ù‚€‚ª‚¢‚¢‚ñ‚¶‚á‚È‚¢‚́B
SSE‚Í‘å—ʂ̃f[ƒ^‚É“¯‚¶ˆ—‚ð‚©‚¯‚邯‚«‚É‚±‚»Œø‰Ê‚ð”­Šö‚·‚é‚ñ‚Å‚ ‚Á‚Ä
×‚©‚¢Š‚͏]—ˆ‚Ìx86–œ—߂̂ق€‚ª‚Þ‚µ‚둬‚¢B

462:R„LÍMƒ,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 21:03:24
>>460
‚»‚€‚¢‚€‚̂Ɍü‚¢‚Ä‚é‚Á‚Ęb‚Í•·‚¢‚œ‚±‚Æ‚ª‚È‚¢B


463:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 21:55:34
’Pˆê‚Ì64bit‚â128bit’l‚ð‰œ‰ñ‚àŒvŽZ‚·‚邯‚«‚́H

464:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 21:57:38
”Ä—pƒŒƒWƒXƒ^‚É”[‚Ü‚ç‚È‚¢ƒTƒCƒY˜M‚é‚È‚çŒø‰Ê‚ ‚é‚ñ‚¶‚á‚È‚¢‚Ì?

465:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/24 22:04:42
ƒAƒŒ‚Í‚ ‚­‚Ü‚Å32ƒrƒbƒg’l‚ð4‚“¯Žž‚Ɉµ‚€‚à‚̂ł ‚Á‚āA‘œ”{’·ˆµ‚€‚È‚ç‚Þ‚µ‚ë64ƒrƒbƒgƒ‚[ƒh‚ŔėpƒŒƒWƒXƒ^ƒx[ƒX‚Å‚â‚Á‚œ‚Ù‚€‚ª‚¢‚¢B

466:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/24 22:15:44
( ¥Í¥)‚V¿ ͪ°Íª°Íª°Íª°Íª°

467:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/25 17:49:27
PADDQ‚Æ‚©‚ÌŽ–‚Ÿ‚ë‚€‚¯‚ÇC2D‚Å‚àƒŒƒCƒeƒ“ƒV2‚Ÿ‚µ‚Ë
ŽÀ‘•‚Ícarry select‚ ‚œ‚肟‚ë‚€‚©

468:451
07/12/26 11:18:07
>>452
’xƒŒƒX‚Ÿ‚ª
ptest‚ÍSSE4.1‚ŁCPenryn‚ÍSSE4‚¶‚á‚È‚©‚Á‚œH

469:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/26 11:52:30
SSE4‚ÍSSE4.1‚ÆSSE4.2‚Ì—Œ•û‚ðŠÜ‚ތďÌ(³Šm‚ɂ́A‚Æ‚¢‚€Ž–‚ɂȂÁ‚œ)
Penryn‚Í4.1‚Ì‚Ý
Nehalem‚Í4.1‚Æ4.2‚Ì—Œ•û

>>452‚ō‡‚Á‚Ä‚é‚ñ‚¶‚á‚ˁ[‚́H

470:451
07/12/26 13:20:32
>>469
‚Ç‚€‚à‚»‚Ì—l‚Å‚·‚ˁCTHXD
URLØÝž(pc.watch.impress.co.jp)
Penryn‚Ȃ炻‚ê‚قǑ҂œ‚È‚­‚čςނȂŸC‚Ç‚€‚µ‚æ‚€D

471:451
07/12/26 13:22:02
>‚»‚ê‚قǑ҂œ‚È‚­‚čςނȂŸ
‚±‚ê‚͉¿Ši‚ªŽè ‚ɂȂé‚Ì‚ðC‚Á‚ĈӖ¡‚Å‚·

472:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/26 13:25:45
64bit•‚“®¬”“_”‚Ì”z—ñ‚ª‚ ‚Á‚œ‚Æ‚«â‘Î’l‚ªÅ‘å‚Ì—v‘f‚ð
‹‚ß‚œ‚¢‚̂ł·‚ªSSE2‚ðŽg‚Á‚č‚‘¬‚ɂł«‚é‚Å‚µ‚å‚€‚©H
•’i‚ÍVC++‚ðŽg‚Á‚Ă܂·‚ª‚æ‚荂‘¬‰»‚Å‚«‚é‚È‚çƒAƒZƒ“ƒuƒ‰
‚à‚‚©‚Á‚Ă݂悀‚©‚ƍl‚ЂĂ܂·BOS‚ÍVista(64bit)‚Å‚·B

473:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/26 13:54:20
>>472
x64—p‚Ì‚ÌVC++‚Ÿ‚ƃfƒtƒHƒ‹ƒg‚ÅSSE2‚ðŽg‚€‚æ‚€‚ɂȂÁ‚Ä‚¢‚éB
‰º‚Ì‚ð@cl@/c@/O2@/FAsc@test.c@‚ŃRƒ“ƒpƒCƒ‹‚µ‚āAtest.cod@‚ðŒ©‚Ä‚Ý‚é‚Æ‚Ü‚ ‚Ü‚ ‚̃R[ƒh‚ª¶¬‚³‚ê‚Ä‚¢‚邌B

double@maxabs(double@array[],@int@size)@{
@@double@ans@=@0.0;
@@for@(int@i=0;@i<size;@i++)@ans@=@__max(ans,@abs(array[i]));
@@return@ans;
}


474:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/26 18:30:53
>>473
C‚Ÿ‚Ɓufor (int i=0;v‚̂Ƃ±‚ë‚ŃGƒ‰[‚ɂȂé‚Ì‚Å
#include <cmath>
#include <cstdlib>
‚ð•t‚¯‰Á‚Š‚ÄCPPƒtƒ@ƒCƒ‹‚É‚µ‚ăRƒ“ƒpƒCƒ‹‚µ‚Ă݂܂µ‚œB
movsdx andpd comisd
‚ȂǂªŽg‚í‚ê‚Ä‚¢‚Ü‚·‚ˁB‚±‚ꂪSSE2‚©‚ȁH
‚Å‚à‚±‚ꂪ–{“–‚ɍ‚‘¬‚ȃR[ƒh‚©‚Ç‚€‚©‚͂킩‚ç‚È‚¢‚Å‚·‚ˁB


ƒCƒ“ƒeƒ‹‚ÅMKL‚Æ‚¢‚€ƒ‰ƒCƒuƒ‰ƒŠ‚ðo‚µ‚Ă܂·‚ª‚±‚ê‚Í‚·‚²‚¢‚Å‚·‚ˁB
ŽŽ‚µ‚œ‚͍̂s—ñŒvŽZ‚̈ꕔ‚Ÿ‚¯iLU•ª‰ðj‚Å‚·‚ª”’lŒvŽZ‚Ì–{‚ɍڂÁ‚Ä‚¢‚é
ƒvƒƒOƒ‰ƒ€‚ðVC++‚ŃRƒ“ƒpƒCƒ‹‚µ‚œ‚à‚Ì‚æ‚è5”{‚®‚ç‚¢‚‘¬‚Å‚·B
”ŠwƒŒƒxƒ‹‚ŐVƒAƒ‹ƒSƒŠƒYƒ€‚ðŠJ”­‚µ‚œ‰Â”\«‚Í’á‚¢‚̂ŎÀ‘•ƒŒƒxƒ‹
‚Ì‹Zp‚ª‚‚¢‚ÆŽv‚€‚̂ł·B
5”{‚̍·‚͑傫‚¢‚Ì‚ÅSSE‚Ȃǂð•׋­‚µ‚ĉœ‚Æ‚©‹ß‚«‚œ‚¢‚̂ł·‚ª
‘å•Ï‚©‚ȁH


475:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/26 18:38:45
dou you make correlated random number?

476:451
07/12/26 20:38:30
>>472
P4—p‚Å‚¿‚å‚Á‚ƌ¢‚¯‚Ç
uƒXƒgƒŠ[ƒ~ƒ“ƒO SIMD Šg’£–œ—ß 2(SSE2)‚ðŽg—p‚µ‚œA”{ž“x•‚“®¬”“_ƒxƒNƒgƒ‹‚̍őå/Å¬—v‘f‚Æ‚»‚̃Cƒ“ƒfƒbƒNƒX‚ÌŒŸovURLØÝž(download.intel.com)

477:472
07/12/26 23:15:38
>>476
‚â‚肜‚¢‚̂͐â‘Î’l‚̍őå‚Ȃ̂ł¿‚å‚Á‚ƈႀ‚¯‚ǂȂ©‚È‚©ŽQl‚ɂȂè‚Ü‚·B
Å‘傯Å¬‚ð‚à‚Æ‚߂Đâ‘Î’l‚̑傫‚È•û‚ð‚Æ‚é•û–@‚Æ
â‘Î’l‚ðŒvŽZ‚µ‚È‚ª‚çÅ‘å‚ð‚à‚Æ‚ß‚é•û–@‚ª‚ ‚è‚Ü‚·‚ˁB
‚Ü‚ ‚±‚̕ӂ͂¢‚ë‚¢‚ëŽÀŒ±‚µ‚Ă݂Ȃ¢‚Ƃǂꂪ‚¢‚¢‚Ì‚©‚í‚©‚ç‚È‚¢‚Å‚·‚ˁB

478:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
07/12/27 02:18:53
>>473
VC++‚Ÿ‚Æmaxsd‚µ‚©Žg‚í‚È‚¢—\ŠŽB

>>473ƒx[ƒX‚ŁAarray‚Ì—v‘f‚ª‹ô”ŒÂ‚Å128ƒrƒbƒg‹«ŠE‚É‚ ‚Á‚Ä‚é‚Ì‘O’ñ‚Ȃ炱‚ñ‚ÈŠŽ‚¶
‚œ‚Ô‚ñSSE3‚­‚ç‚¢‚ÍŽg‚Ђ邿‚ˁH‚œ‚¢‚µ‚œ‚±‚ƂɎg‚Á‚ĂȂ¢‚¯‚ǁB

#include <pmmintrin.h>
double maxabs(double array[], int size) {
@ @ static const union {
@ @ @ @ __m128d pd;
@ @ @ @ __int64 a[2];
@ @ } mask = { 0x7FFFFFFFFFFFFFFFi64, 0x7FFFFFFFFFFFFFFFi64 };
@ @ double ans;
@ @ __m128d ans_pd = { 0.0, 0.0 };
@ @ for (int i = 0; i < size; i+= 2)
@ @ @ @ ans_pd = _mm_max_pd( ans_pd, _mm_and_pd(mask.pd, *((__m128d*)&array[i])) );
@ @ ans_pd = _mm_hadd_pd(ans_pd, ans_pd);
@ @ _mm_store_sd(&ans, ans_pd);
@ @ return ans;
}



479:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/27 23:05:22
>>474
SIMD‰»‚Ì•û‚ªŠÈ’P‚Å–Ê”’‚»‚€‚Ÿ‚©‚ç–ڂɂ‚«‚â‚·‚¢‚ñ‚Ÿ‚¯‚ǁA‚»‚±‚͍Ōã‚ÌŽè’i‚È‚ñ‚Ÿ‚æ‚ˁB

”z—ñ“¯Žm‚ÌŽl‘¥‰‰ŽZ‚ł͋ɗ͑S‚Ẳ‰ŽZ‚ð‚܂Ƃ߂čs‚Á‚āA‘ã“ü‚ð1‰ñ‚ōς܂·B
s—ñ‚È‚ñ‚©‚ÌŽOŽŸŒ³“I‚ȃ‹[ƒv‚̓LƒƒƒbƒVƒ…‚É“ü‚é’·•ûŒ`‚̃uƒƒbƒN’PˆÊ‚ŏˆ—‚ð‚·‚éB
‚»‚€‚¢‚€‚Æ‚±‚낪o—ˆ‚Ä‚ê‚ÎSIMD‰»‚µ‚È‚­‚Ä‚à‘OŽÒ‚ōőå2”{‚­‚ç‚¢AŒãŽÒ‚ÍŒv‚è’m‚ê‚È‚¢’ö‘¬‚­‚È‚éB

480:474
07/12/28 23:06:10
>>479
‹CŽ‚¿‚͂킩‚邯‚Ç‹ï‘Ì“I‚ɂ͂ǂ€‚â‚é‚Ì‚©‚ȁH
’Z‚¢‚̂ō‚‘¬‰»‚µ‚œ‚¢ƒvƒƒOƒ‰ƒ€‚ðƒAƒbƒv‚µ‚Ă݂éB
#include <cmath>
double LU(int n, double** a, int* ip)
{
int i,j,k,ii,ik;
double t,u,det,*w;
w=new double[n];
for(k=0;k<n;k++){
ip[k]=k;
for(j=0,u=0;j<n;j++){ t=fabs(a[k][j]); if(t>u) u=t; }
if(u==0){ delete[]w; return 0; }
w[k]=1/u;
}
det=1;
for(k=0;k<n;k++){
u=-1;

481:474
07/12/28 23:08:38
‘±‚«
for(i=k;i<n;i++){
ii=ip[i];
t=fabs(a[ii][k])*w[ii];
if(t>u){ u=t; j=i; }
}
ik=ip[j];
if(j!=k){
ip[j]=ip[k]; ip[k]=ik;
det=-det;
}
u=a[ik][k]; det*=u;
if(u==0){ delete[]w; return 0; }
for(i=k+1;i<n;i++){
ii=ip[i];
t=(a[ii][k]/=u);
for(j=k+1;j<n;j++) a[ii][j]-=t*a[ik][j];
}
}
delete[]w;
return det;
}
ÅŒã‚Ìforƒ‹[ƒv‚ª3dƒ‹[ƒv‚Ȃ̂ł±‚Ì•t‹ß‚ªˆê”ÔƒXƒs[ƒh‚ÉŠÖŒW‚µ‚Ä‚»‚€B


482:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/28 23:33:40
ƒLƒƒƒbƒVƒ…Œø—Šã‚°‚ê‚΂©‚ñ‚荂‘¬‰»‚µ‚»‚€‚Ÿ‚Ë

483:479
07/12/29 23:23:23
’p‚ž‚©‚µ‚È‚ª‚çLU•ª‰ð‚Í‚â‚Á‚œŽ––³‚¢‚ñ‚Ÿ‚¯‚Ç
3d‚̃‹[ƒv‚Åa[ii]‚̃‰ƒCƒ“‚Íi‚Ɉˑ¶‚µ‚Đ؂è‘Ö‚í‚èA
a[ik]‚̃‰ƒCƒ“‚Ík‚Ɉˑ¶‚µ‚Đ؂è‘Ö‚í‚é‚Å‚µ‚åB

a[ik]‚̃‰ƒCƒ“‚Ík‚ɂ‚«1“x‚µ‚©Ø‚è‘Ö‚í‚ç‚È‚¢‚©‚çƒLƒƒƒbƒVƒ…‚É‚ž‚Á‚Æ“ü‚Á‚Ă邯‚ǁA
a[ii]‚̃‰ƒCƒ“‚Ík‚ª“¯‚¶‚Å‚ài‚ª•Ï‚í‚Á‚œ‚çØ‚è‘Ö‚í‚Á‚Ä‚µ‚Ü‚€B
a[ii]‚̃‰ƒCƒ“‚͍őåk‰ñƒAƒNƒZƒX‚ª‚ ‚é‚©‚çAo—ˆ‚ê‚ΐ؂è‘Ö‚Š‚œ‚­–³‚¢B

‚»‚±‚ŐܒˆÄ‚ð‚Æ‚Á‚āAa[ik]‚ð‚à‚€­‚µ•p”ɂɐ؂è‘Ö‚Š‚é‘ã‚í‚è‚Éa[ii]‚ð‚à‚€­‚µ‚ä‚Á‚­‚èØ‚è‘Ö‚í‚邿‚€‚Ƀoƒ‰ƒ“ƒX‚ðŽæ‚éB

ƒoƒ‰ƒ“ƒX‚ðŽæ‚é‚Æ‚¢‚€‚̂͂ǂ€‚¢‚€Ž–‚©‚ÆŒŸ‚€‚ƁA
“ñŽŸŒ³‚̏ˆ—‚Å1000x1000‚Ì—v‘f‚ª‚ ‚Á‚œŽž‚É
1ƒ‰ƒCƒ“‚ž‚ˆ—‚·‚é‚̂ł͂Ȃ­—ႊ‚Î100x100‚̃}ƒX‚ª10x10ŒÂ‚ ‚é‚à‚̂Ƃµ‚ďˆ—‚·‚éB
(0, 0)-(999, 0)‚ðˆ—‚µ‚Ä‚©‚ç(0, 1)-(999, 1)‚̏ˆ—‚ð‚·‚é‚ñ‚¶‚á‚È‚­‚āA
(0, 0)-(99, 0)‚܂ŏˆ—‚µ‚Ä(0, 1)-(99, 1)...(0, 99, 99, 99), (100, 0)-(199, 0)‚̂悀‚ȏˆ—‚ÌŽd•ûB

¡‰ñ‚̓‹[ƒv‚ª3d‚Ÿ‚©‚çA‘‚«Š·‚Ђ邯6d‚̃‹[ƒv‚ɂȂÁ‚Ä“ª‚͍ō‚‚É‚±‚ñ‚ª‚炪‚éB
‚µ‚©‚àƒ‰ƒCƒ“‚ªip‚É‚æ‚Á‚Ä“ü‚ê‘Ö‚í‚é‚Ý‚œ‚¢‚Ÿ‚©‚çA‚±‚€‚¢‚€Žè–@‚ªŽg‚Š‚é‚Ì‚©‚æ‚­•ª‚ç‚È‚¢B‚²‚ß‚ñB
ip‚ª‚Ç‚€•Ï‚í‚é‚©‚ðŽ–‘O‚É•K—v‚ȃ‰ƒCƒ“”•ªŒvŽZo—ˆ‚ê‚΂¢‚¢‚ñ‚Ÿ‚ë‚€‚¯‚ǁB

484:474
07/12/30 21:31:17
>>483
ƒRƒƒ“ƒg‚ ‚肪‚Æ‚€‚²‚Ž‚¢‚Ü‚·
­‚µÚ×‚É480‚̃vƒƒOƒ‰ƒ€iLU1j‚Æ
intel‚ÌMKL‚ðŽg‚Á‚œê‡(LU2)‚Æ‚ðƒeƒXƒg‚µ‚Ü‚µ‚œB

ƒTƒCƒY(n) LU1(VC++) LU2(MKL) ”ä—Š
4 0.218ƒÊs 1.140ƒÊs 0.191
8 0.796ƒÊs 2.680ƒÊs 0.297
16 4.087ƒÊs 7.460ƒÊs 0.548
32 0.0246ms 0.0204ms 1.21
64 0.174ms 0.0656ms 2.65
128 1.31ms 0.271ms 4.83
256 10.2ms 1.435ms 7.11
512 82.4ms 9.13ms 9.03
1024 780ms 66.1ms 11.8
2048 7.58s 0.501s 15.1
4096 60.9s 3.79s 16.1
8192 486.5s 29.9s 16.3
CPUFintel Q6700(3.4GHz)

ƒTƒCƒY‚ª¬‚³‚¢ê‡‚ÍLU1‚Å‚àƒLƒƒƒbƒVƒ…‚Ì—˜—pŒø—Š‚ª‚‚¢‚Í‚ž‚Å‚·‚ª
—\‘z‚Ç‚€‚èLU2‚Ƃ̍·‚ª¬‚³‚­‚È‚èn‚ª‚²‚­¬‚³‚¢‚Æ‚«‚Í‹t“]‚µ‚Ä‚¢‚Ü‚·B
‚œ‚Ô‚ñLU2‚Í•¡ŽG‚È‚â‚Á‚Ä‚¢‚Ä‚»‚Ì‚œ‚ß’x‚­‚È‚Á‚Ä‚¢‚é‚̂łµ‚å‚€B
n‚ª”ñí‚ɑ傫‚­‚È‚é‚ÆLU1‚̓LƒƒƒbƒVƒ…Œø—Š‚ªˆ«‚¢‚œ‚ßLU2‚ɑ卷‚ð‚‚¯‚ç‚ê‚Ä‚µ‚Ü‚Á‚Ă܂·B

‚‘¬‰»‚ð‚߂ނ·‚È‚çSSE‚̍œK‰»‚ðl‚Š‚é‘O‚ɃLƒƒƒbƒVƒ…Œø—Š‚ðã‚°‚éH•v‚ð‚·‚×‚«‚Å‚·‚ˁB
‚Æ‚È‚é‚Æ483‚̂悀‚È‘œdƒ‹[ƒv‚̃uƒƒbƒN‰»‚ª•K‘R‚ƂȂ邩H
‚Ü‚ A“‚»‚€‚Ȃ̂ŋï‘Ì“I‚È•û–@‚͏­‚µl‚Š‚Ä‚Ý‚Ü‚·B
‚€‚Ü‚¢ƒAƒCƒfƒA‚ª‚ ‚è‚Ü‚µ‚œ‚ç‚Ü‚œƒRƒƒ“ƒg‚­‚Ÿ‚³‚¢Bi‚â‚âƒXƒŒˆá‚¢‚ɂȂè‚‚‚ ‚邪j


485:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/30 22:03:51
‚±‚±‚͈ꉞŠg’£–œ—߂̃XƒŒ‚Ÿ‚©‚ç‚Ë‚ŠB
‚à‚µˆÚ“®‚·‚é‚Ȃ炱‚±‚©‚ȁH
œÚØÝž(tech”Â)l50

486:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
07/12/30 22:07:51
ƒ\ƒtƒgƒEƒFƒAEƒvƒŠƒtƒFƒbƒ`‚̘b‚𗍂߂‚‚â‚ê‚Î
ƒXƒŒˆá‚¢‚ɂȂç‚È‚ž‚ɍςނ©B

487:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/01/16 18:30:07
xmm ‚Ì not ‚ðˆê–œ—߂ŋ‚ß‚é•û–@‚Í‚ ‚è‚Ü‚¹‚ñ‚©H@~0 ‚Æ‚Ì xor ‚Í–³‚µ‚Å

488:487
08/01/16 20:45:05
ã‚°‚Æ‚«‚Ü‚·

489:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/01/16 21:28:47
pandn‚Å‚àƒ_ƒ‚Ÿ‚æ‚ȁB
‚»‚€‚È‚é‚ÆAŽü‚è‚Ì–œ—߂Ɨ‚߂ĎÀŽ¿“I‚É‚P–œ—߂ōς܂·‚±‚Æ‚ðl‚Ђ邭‚ç‚¢‚©B

490:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/01/17 00:08:24
–³—‚Á‚Û‚¢‚Ë‚¥Dall 1 ‚̒萔‚ð read ‚·‚邱‚Æ‚ðl‚Š‚ê‚΁C
cmpeq xmm0,xmm0 ‚Å all 1 ‚ðì‚é•û‚ª‘¬‚¢‚©H

491:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
08/01/17 00:58:10
all 1‚ðƒ[ƒh‚Ÿ‚ƃŒƒWƒXƒ^ƒŠƒl[ƒ~ƒ“ƒO‚³‚ê‚é‚̂ŐæsŽÀs‚Å‚«‚é‰Â”\«‚ª‚ ‚éB
ƒP[ƒXƒoƒCƒP[ƒXB

492:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/02/19 10:43:09
ƒƒfƒBƒAƒ“ƒtƒBƒ‹ƒ^‚ðì¬‚µ‚œ‚¢‚̂ł·‚ªA
ƒRƒ“ƒpƒCƒ‰‚ªSSE‚ðŽg‚¢‚â‚·‚¢ƒR[ƒh‚͂ǂ̂悀‚ɏ‘‚¢‚œ‚ç‚æ‚¢‚̂łµ‚å‚€‚©H

493:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/02/20 07:38:55
ƒƒfƒBƒAƒ“ƒtƒBƒ‹ƒ^‚ÅŽ©“®ƒxƒNƒgƒ‹‰»‚͓‚¢‚È‚ B
ƒ\[ƒgƒAƒ‹ƒSƒŠƒYƒ€‚ðGPU‚Å‚â‚é‚â‚‚݂œ‚¢‚É’Œü“I‚È‚à‚̂ɂ·‚ê‚΂â‚Á‚Ä‚­‚ê‚È‚¢Ž–‚Í–³‚¢‚¯‚ǁB
‚Ƃɂ©‚­ˆê”Ô“à‘€‚̃‹[ƒv‚ªƒxƒNƒgƒ‹“¯Žm‚̉‰ŽZ‚É‚È‚é‚æ‚€‚ɐSŠ|‚¯‚鎖B

494:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/19 00:27:56
s—ñŒvŽZ‚ðSSE‚ōs‚Á‚œê‡‚Ì
‰ðàƒTƒCƒg‚µ‚ç‚È‚¢‚Á‚·‚©H

495:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/19 03:21:26
URLØÝž(www.google.co.jp)

496:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/19 22:39:47
a1=3.1 a2=4.0 a3=5.5 a4=6.1

r1 = a1^2 + a2^2 + a3^2 - a4^2
r2 = a1+a2 - a3*a4 +a1+a3 + a2*a4

r = r1+r2

‚±‚ñ‚È‚ÌSSE‚Å‰ð‚«‚œ‚¢‚ñ‚Ÿ‚¯‚ǂǂ€‚·‚ê‚΂¢‚¢‚ñ‚Ÿ‚ë‚€




497:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/21 16:25:20
dvec.h‚Ì
cmpeq()‚µ‚œŒ‹‰Ê‚ª‘S‚Ä‚O‚©‚Ç‚€‚â‚Á‚Ä”»•Ê‚·‚é‚́H

498:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/21 20:26:50
if ( _mm_movemask_pd(cmpeq(a, b)) == 0 )

499:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/21 23:31:44
‚ށ```
”{ž“x‚̐â‘Î’l‚͂ǂ€‚·‚ê‚΋‚Ü‚é‚́H

500:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 00:08:16
ŠwZ‚̕׋­‚©H‚¿‚Á‚œ‚ “ªŽg‚Š‚æB

•û–@1(ƒ[ƒh–³‚µ):
// a = a < 0 ? -a : a;
F64vec2 z = _mm_setzero_pd();
a = select_lt(a, z, z-a, a);

•û–@2(ƒ[ƒh—L‚è):
static const __int64 _0x7FFFFFFFFFFFFFFFLL = 0x7FFFFFFFFFFFFFFFLL;
F64vec2 m(*(double *)&_0x7FFFFFFFFFFFFFFFLL);
a &= m;

501:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 00:11:01
ŠÔˆá‚Á‚œBm‚Í

static const F64vec2 m = ˆÈ‰ºÈ—ª

502:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 00:17:45
>>500
‚ [‚»‚€‚¢‚€‚Ì‚ª‚ ‚é‚̂ł·‚Ë
‰œ•ª‚ ‚ى߂¬‚āA‚ ‚«‚ê‚Ă邩‚à‚µ‚ê‚Ü‚¹‚ñ‚ª‚Ç‚€‚à‚·‚¢‚Ü‚¹‚ñB

503:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 01:06:49
‚¢‚¢‚Á‚Ä‚±‚Æ‚æB
‚¿‚Ȃ݂ɐâ‘Î’l‚̏ˆ—‚ªƒ‹[ƒv‚É“ü‚Á‚Ä‚¢‚Ĕ䗊‚ª‚‚¢ê‡‚̓[ƒh—L‚èA
â‘Î’l‚ðŽæ‚é•‰‰×‚ª’á‚¢‚Ȃ烍[ƒh–³‚µ‚ªŒø—Š“IB

‚Æ‚±‚ë‚ōŋßrcp_nr()‚ârsqrt_nr()‚̐ž“x‚̒Ⴓ‚ð’Q‚¢‚Ä‚¢‚Ä
‚à‚€ˆê’iŠKŒvŽZ‚·‚é‚©‘f’Œ‚Édivps‚ðŽg‚€‚©l‚ЂĂœ‚ñ‚Ÿ‚ª
ƒOƒO‚Á‚Ä‚Ý‚é‚Ædivps‚Æsqrtps‚Á‚čŋ߂Í6 cycle‚Ȃ̂ȁBtypo‚¶‚á‚È‚¢‚Ì‚©H‘¬‚·‚¬‚éB
‚È‚ñ‚©rsqrt_nr()‚Í‚Æ‚à‚©‚­rcp_nr()‚Á‚Ä—v‚ç‚È‚¢Žq‚È‹C‚ª‚µ‚Ä‚«‚œB

‚»‚à‚»‚à‰œŒÌrcpps, rsqrtps‚ÅVMX‚Ý‚œ‚¢‚É12ƒrƒbƒg—pˆÓ‚µ‚È‚©‚Á‚œ‚Ì‚©‚Æ–â‚¢‚‚߂œ‚¢B
ƒvƒƒZƒbƒT‚Í“úX‘¬‚­‚È‚é‚ñ‚Ÿ‚©‚ç12ƒrƒbƒg‚ªÅ‰‚͑傫‚·‚¬‚Å‚à—pˆÓ‚·‚é‚ׂ«‚Ÿ‚Á‚œ‚ë‚€B

504:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 10:06:41
6 cycle‚Æ‚¢‚€‚̂́A2.0 ‚ÅŠ„‚é‚Ý‚œ‚¢‚È’Pƒ‚ȃP[ƒX‚Ÿ‚¯‚¶‚á‚È‚¢‚́H

505:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 10:39:18
0œŽZ‚Á‚Ăǂ€ˆµ‚€‚ׂ«‚Ȃ́H
í‚Ƀ`ƒFƒbƒN‚·‚é‚Ì‚©‚È

506:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 11:39:56
>>504
î•ñ‚ªŒÃ‚¢‚ª248966.pdf‚ð“Ç‚ñ‚Å‚à13 cycle‚Ÿ‚ŒB‚±‚ê‚Å‚à\•ª‘¬‰ß‚¬‚邟‚ëB
‚¿‚å‚Á‚Æ‘O‚Ü‚Å40 cycle‚Ÿ‚Á‚œ‚̂ɁB
‚±‚è‚á’†‚Å‚Í12bit‚Ìrcpps‚ðŽ‚Á‚Ä‚é‚ȁB‹t”Žæ‚Á‚Đž“xã‚°‚ª1‰ñ‚ōς߂Î13 cycle‚Å‚à”[“Ÿo—ˆ‚éB

>>505
0œŽZ‚͐”Šwã’è‹`‚³‚ê‚Ä‚¢‚È‚¢B
ƒvƒƒOƒ‰ƒ€‚Æ‚©ŠÖŒW‚È‚­AŠ÷ã‚Ő”Ž®‘‚¢‚œŽž“_‚ł‚Á‚±‚ނׂ«‚ŸB
’è‹`‚³‚ê‚Ä‚¢‚È‚¢‚̂ŁA“–‘R“š‚Š‚ÍŽ©•ª‚Å—pˆÓ‚·‚鎖B

1. 0‚ŏœŽZ‚·‚鎞“_‚Ő”Ž®‚ªŠÔˆá‚Á‚Ä‚¢‚œ‚Æ”Fޝ‚µA•û–@‚ð‰ü‚ß‚éB
2. œ”‚ª0‚ɂȂç‚È‚¢‚æ‚€‚ȃƒWƒbƒN‚É‚·‚éB
3. œ”‚ª0‚ɂȂÁ‚œê‡‚̉ñ”ðô‚ðÝ‚¯‚éB
3-1. c = a / (b + 0.001) ‚̂悀‚È‚©‚³ã‚°‚ðs‚€B
3-2. c = a / max(b, 1) ‚̂悀‚ȉºŒÀ‚ðÝ‚¯‚éB
3-3. c = b == 0 ? 0 : a/b ‚̂悀‚È“Á•ʂȎæ‚舵‚¢‚ðs‚€B
4. Œ‹‰Ê‚ªNAN‚©‚𒲂ׂČォ‚çŒvŽZ‚ÉŽž”s‚µ‚Ä‚¢‚鎖‚ð”Fޝ‚·‚éB

3‚̓vƒƒOƒ‰ƒ€‚É‘g‚Ý“ü‚ê‚鎖‚ɂȂéB3-2‚Æ3-3‚Í“–‘RŽ–‘O‚É•ª‚©‚ê‚΂»‚±‚ÅŽæ‚舵‚Š‚Î‚¢‚¢‚µA’Œ‘O‚܂ŕª‚©‚ç‚È‚¯‚ê‚Ώí‚Ƀ`ƒFƒbƒN‚·‚éB
ˆ—‚É‚æ‚Á‚Ă͖³—‚ɉñ”ð‚·‚é‚æ‚è‚à4‚ªd—v‚ȏꍇ‚à‚ ‚éB

507:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 12:42:58
gcc‚É#include <dvec.h>‚Á‚ĂȂ¢‚ñ‚Ÿ‚È
icc”ƒ‚€‚µ‚©‚È‚¢‚©

508:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/22 13:32:06
>>505
í‚Ƀ`ƒFƒbƒN‚µ‚È‚­‚Ä‚àA__try { } ‚ň͂ñ‚ŁA
0œŽZ—áŠO‚ð __except() ‚Ŏ󂯂é•û–@‚à‚ ‚邿B
—áŠO‚𔭐¶‚³‚¹‚邿‚€‚Éfldcw‚âldmxcsr‚Őݒ肷‚é•K—v‚ª‚ ‚邯‚ǁB

509:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/25 14:48:40
•¡”‚̃XƒŒƒbƒh‚Å“¯Žž‚ÉMMX–œ—ß‚ðŽg‚€ê‡‚É
ƒXƒŒƒbƒh‚²‚Æ‚Éemms‚ðŒÄ‚Ô•K—v‚Í‚ ‚è‚Ü‚·‚©H

‚»‚ê‚Æ‚àˆÈ‰º‚̂悀‚ɁA•¡”‚̃XƒŒƒbƒh‚©‚甲‚¯o‚œŒã‚É
ˆê‰ñ‚Ÿ‚¯emms‚ðŒÄ‚ׂÎOK‚Å‚·‚©H

#pragma omp parallel for
for (int i = 0; i < hoge; i++) {
@ // ‚±‚±‚ÅMMX‚ðŽg—p (x87–œ—߂͎g‚í‚È‚¢)
}
_mm_empty();@// emms‚Í‚±‚̈ê‰ñ‚ÅOKH

510:509
08/06/25 16:10:01
‰œ‚©‚ ‚Á‚œ‚ç•|‚¢‚Ì‚Å
ƒXƒŒƒbƒh‚²‚Æ‚Éemms‚ðŒÄ‚яo‚·‚±‚Ƃɂµ‚Ü‚µ‚œB

511:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/26 02:27:18
ƒ}ƒ‹ƒ`ƒXƒŒƒbƒh‚ÅMMX‚Í–¢‘Ήž‚Ÿ‚¯‚Ç‚È

512:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/26 22:59:19
‚»‚̂ւñ‚ÍOSˆË‘¶‚¶‚á‚È‚¢‚́H

513:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/26 23:10:16
‚¢‚âSSE‚àMMX‚àƒ}ƒ‹ƒ`ƒRƒA‚ƃ}ƒ‹ƒ`ƒXƒŒƒbƒh–¢‘Ήž‚Ÿ‚ë

514:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 00:40:22
ƒ}ƒ‹ƒ`ƒXƒŒƒbƒh–¢‘Ήž‚Ƃ̓Rƒ“ƒeƒLƒXƒgƒXƒCƒbƒ`‚ւ̑Ήž‚Ì‚±‚Æ‚ðŒŸ‚Á‚Ä‚¢‚é‚́H
MMX/3DNow‚Íx87FPU‚ƃŒƒWƒXƒ^Œ“—p‚Ÿ‚©‚ç–â‘è–³‚¢‚µA
SSE‚ÍFXSAVE/FXRSTOR‚Æ‚¢‚€ê—p–œ—ß‚ª‚ ‚é‚©‚çA‚±‚ê‚à–â‘è‚È‚³‚»‚€‚Ÿ‚ªB

515:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 00:50:59
‚»‚€‚¶‚á‚ˁ[
ƒ}ƒ‹ƒ`ƒvƒƒZƒX‚È‚çƒRƒ“ƒeƒNƒXƒgƒXƒCƒbƒ`Žž‚ÉSSE/MMXƒŒƒWƒXƒ^‚ª
•Û‘¶‚³‚ê‚邟‚ë‚€‚ªƒ}ƒ‹ƒ`ƒXƒŒƒbƒh‚͈ê‚‚̃vƒƒZƒX‚Ì’†‚Å•¡”‚Ì
ƒXƒŒƒbƒh‚𑖂点‚é‚̂ŔėpƒŒƒWƒXƒ^‘Þ”ð‚µ‚©‚È‚¢

516:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 01:03:32
>>515
‚Ȃɂ»‚Ì•³ŠÂ‹«H
ŽN‚µ‚Ä‚Ý

517:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 01:10:51
ƒ}ƒ‹ƒ`ƒXƒŒƒbƒh‚ÌŽÀ‘•‚Ɉˑ¶‚·‚é˜b‚Ÿ‚ª
­‚È‚­‚Æ‚à Linux ‚Í‘åä•v‚Ÿ‚Á‚œ‚Í‚ž
ƒ_ƒ‚Ȋ‹«‚ð‰Ž‚à’m‚肜‚¢

518:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 02:14:56
Windows 95‚Æ‚©H
ƒvƒƒZƒXŠÔ‚Å‚à‚Ÿ‚ß‚Ÿ‚µ‚»‚à‚»‚à(ry
‚È‚ñ‚ăcƒbƒRƒ~‚Í‚¢‚â‚ñ

519:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 02:31:10
>>515
1D>>514 ‚ɏ‘‚¢‚Ä‚ ‚邿‚€‚É MMXƒŒƒWƒXƒ^ = x87ƒŒƒWƒXƒ^ ‚Ȃ̂Ÿ‚©‚çA
@@MMXƒŒƒWƒXƒ^‚ª•Û‘¶‚³‚ê‚È‚¢‚Ȃ珬”“_‰‰ŽZ‚à“¯—l‚ł͂Ȃ¢‚Ì‚©B

‚QD“ÁŒ ƒ†[ƒU‚Å‚à‚È‚¢ŒÀ‚èƒRƒ“ƒeƒNƒXƒgƒXƒCƒbƒ`‚ð‹ÖŽ~‚Å‚«‚È‚¢B
@@‚³‚à‚È‚¯‚ê‚Î’N‚Å‚àƒVƒXƒeƒ€‚ð‹­§’âŽ~‚Å‚«‚Ä‚µ‚Ü‚€B@i—áFWindows 3.1j
@@§Œä‚Å‚«‚È‚¢‚Æ‚µ‚œ‚çA‚ł͂ǂ̃^ƒCƒ~ƒ“ƒO‚ŃŒƒWƒXƒ^‚ð‘Ò”ð‚·‚ê‚΂悢‚Ì‚©B

‚RD>ƒ}ƒ‹ƒ`ƒvƒƒZƒX‚È‚ç ... ’†—ª ... ƒŒƒWƒXƒ^‚ª•Û‘¶‚³‚ê‚é
@@‚»‚ê‚ŁAƒ}ƒ‹ƒ`ƒRƒA”ñ‘Ήž‚ɂȂ闝—R‚͂ȂɁH


520:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 03:03:41
ƒVƒOƒiƒ‹iŠ„‚荞‚݁j‚ƃXƒŒƒbƒh‚Ì‹æ•ʂ̕t‚©‚È‚¢l‚Á‚Ä‚¢‚邿‚ˁB

MMX‚̃ŒƒWƒXƒ^‚ðFDP‚Æ‹€—L‚³‚¹‚œ‚Ì‚ÍOS‘€‚̑Ήž‚ð•s—v‚É‚·‚邜‚ß‚Ì
ŽdŠ|‚¯‚Ÿ‚Á‚œ‚Ì‚Ÿ‚¯‚Ǎ¡‚ƂȂÁ‚Ă͂â‚Á‚¿‚á‚Á‚œ‚Á‚ÄŠŽ‚¶‚ÌŽd‘g‚݂ƕ]‰¿‚³‚ê‚Ä‚¢‚éB

521:519
08/06/27 08:30:11
‚š‚Á‚ƁA>>515 ‚͑Ήž‚µ‚ĂȂ¢i‚Å‚«‚È‚¢j‚ÆŒŸ‚Á‚Ä‚¢‚é‚̂ɁA
‚Q”Ԃł͂â‚è•û‚ð•·‚¢‚Ä‚µ‚Ü‚Á‚Ä‚é‚ȁB
‚±‚ÌŽ¿–â‚Í“P‰ñ‚·‚邯‚µ‚āA‘ã‚í‚è‚É‚R”ԂɒljÁ‚µ‚Ä‚š‚±‚€B

ƒ}ƒ‹ƒ`ƒRƒA”ñ‘Ήž‚Æ‚¢‚€‚̂̓}ƒ‹ƒ`ƒvƒƒZƒbƒTiƒ†ƒjƒRƒAj
‚È‚ç‚ÎOK‚Æ‚¢‚€‚±‚Æ‚©H
SMTiƒnƒCƒp[ƒXƒŒƒbƒfƒBƒ“ƒO“™)‚̏ꍇ‚͂ǂ€‚Ȃ̂©B

522:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 08:33:32
Šî–{“I‚ɃVƒ“ƒOƒ‹ƒRƒA‚ł̂ݗ˜—p‰Â”\‚Ÿ

523:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/27 10:26:51
VŽí‚̃Lƒ`ƒKƒC‚ª–\‚ê‚Ä‚é‚È‚—‚—‚—
“®‚©‚È‚¢‚Á‚[‚Ì‚ª–Ÿ‹L‚³‚ê‚Ă鎑—¿o‚¹‚â‚—

524:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/28 01:13:58
>>522
‚Ü‚ž’ù³‚·‚邯ƒ†ƒjƒRƒA‚È‚é’PŒê‚̓Vƒ“ƒOƒ‹ƒRƒA‚ÌŒë‚肟B
‚»‚ñ‚Å”÷–­‚É’Ê‚¶‚Ä‚¢‚È‚¢‚æ‚€‚Ÿ‚©‚ç‚à‚€ˆê“x•·‚­‚æB

•¡”‚̃Vƒ“ƒOƒ‹ƒRƒA‚ÌCPU‚𓋍ڂµ‚œƒ}ƒ‹ƒ`ƒvƒƒZƒbƒT‚Ì
ƒVƒXƒeƒ€‚ÅMMX/SSE‚Í—˜—p‰Â”\‚Ȃ̂©B

ƒVƒ“ƒOƒ‹ƒRƒA‚È‚ñ‚Ÿ‚¯‚Ç‹[Ž—“I‚Ƀ}ƒ‹ƒ`ƒvƒƒZƒbƒT‚Ì
‚æ‚€‚ɐU‚é•‘‚€SMT‘Ήž‚ÌCPU‚ł͂ǂ€‚©B
‹ï‘Ì“I‚ÉŒŸ‚€‚ÆHT—LŒø‚ÈPentium4‚ÅMMX‚ÍŽg‚Š‚é‚Ì‚©B

Œ‹˜_‚Ÿ‚¯‚ł͂Ȃ­‚āA——R‚ð‹³‚Š‚Ä‚à‚ç‚¢‚œ‚¢‚Ì‚Ÿ‚ªB

525:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/28 01:31:34
Œë‰ð‚̂Ȃ¢‚æ‚€‚É’Ç‹LB
˜b‚ðŠÈ’P‚É‚·‚邜‚߃}ƒ‹ƒ`ƒvƒƒZƒX‚̏ꍇ‚ð•·‚«‚œ‚¢B
‚Ƃ肠‚Š‚ž‚±‚ÌŒ‚ɂ‚¢‚Ă̓}ƒ‹ƒ`ƒXƒŒƒbƒh‚͕ۗ¯‚ŁB

526:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/28 10:19:45
ƒ}ƒ‹ƒ`ƒvƒƒZƒX‚̏ꍇ‚Í
•š—CPU1‚‚Ÿ‚¯‚ʼnғ®‚·‚é
•š—CPU2‚‚Ȃ炻‚Ì‚€‚¿‚P‚‚Ÿ‚¯
‚S‚‚Ȃ炻‚Ì‚€‚¿‚P‚‚Ÿ‚¯

527:ƒfƒtƒHƒ‹ƒg‚Ì–Œ–³‚µ‚³‚ñ
08/06/28 11:15:05
”]“àŽd—l‚Í‚à‚€‚¢‚¢‚æAŽ‘—¿o‚¹Ž‘—¿‚ðB

528:RELÍME,,j‚Á„ª„ª„ª„ª„ª„ª„­
08/06/28 14:34:24
>>496 ‹TƒŒƒX‚Ÿ‚¯‚ǁA‚ǂ̂ւñ‚ª“‚¢H
’Pž“x‚̏ꍇ‚Ÿ‚¯‚Ç

;; r1 = a1^2 + a2^2 + a3^2 - a4^2
movaps xmm0, xmmword ptr [a1_a2_a3_a4] ;; a1, a2, a3, a4‚ð•À‚ׂĂš‚­
movaps xmm1, xmm0
xorps xmm1, xmmword ptr [MASK_PPPN] ;; MASK_PPPN = { 0x00000000, 0x00000000, 0x00000000, 0x80000000 }
;; ‚±‚ê‚Å xmm1 = { a1, a2, a3, -a4 } ‚ɂȂé
dpps xmm0, xmm1, 0xF1 ;; “àÏ‚ð‚Æ‚é
;; SSE4.1”ñ‘Ήž‚È‚çdpps‚Í‚±‚ê‚Å‘ã‘Ö(SSE3•K{)
;; mulps xmm0, xmm1
;; haddps xmm0, xmm0
;; haddps xmm0, xmm0
;; SSE3‚ªŽg‚Š‚È‚¢‚È‚çEEEƒƒ“ƒhƒCEEE

;; r2‘€‚͑債‚Ä•À—ñ‰»‚ªŠú‘Ò‚Å‚«‚È‚¢‚̂ŃXƒJƒ‰‚Å‚â‚Á‚Ă悵
;; r2 = a1+a2 - a3*a4 +a1+a3 + a2*a4 = a1+a1+a2+a3 + (a2-a3)*a4
movss xmm1, dword ptr [a1]
addss xmm1, xmm1 ;; a1+a1
movss xmm2, dword ptr [a2]
addss xmm1, xmm2 ;; (a1+a1) + a2
movss xmm3, dword ptr [a3]
addss xmm1, xmm3 ;;
subss xmm2, xmm3 ;; a2 - a3
mulss xmm2, dword ptr [a4] ;; (a2-a3)*a4
addss xmm1, xmm2 ;; r2 = = (a1+a1+a2+a3) + ((a2-a3)*a4)
;; ÅŒã‚Í‚±‚€
addss xmm0, xmm1 ;; r = r1 + r2


ŽŸƒy[ƒW
ÅVƒŒƒX•\ŽŠ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚š‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ŽŠ
‰É‚‚Ԃµ2ch

5214“ú‘O‚ɍXV/141 KB
’S“–:undef