77a8919349
* UV+DTR model * DTR model.. again. * fix naviGPS * fix radar... * fix.. * test * fix.. * carrot serv * fix.. * fix.. fleet * fix.. radar * fix atc * Steam Powered model.. * fix.. radarLatFactor range.. 200->500 * fix.. dbc.. * side * SP v2 * brake light * fix brakelight * fix.. * add datetime... * fix.. * fix.. * fix.. * fix.. * blind spot * fix tz * fix.. * ff * radarLatFactor * fix.. bsd * Revert "fix.. bsd" This reverts commit 1d0d1434470e1b92c65eaffaeb8dd7cd779f85ee. * fix.. bsd side.. * test * fix.. e2e conditions * Revert "test" This reverts commit 0ce791dbd66c17260366ed1a4df2626c602dbb7d. * TR16 * fix cut-in detect threshold 3.4 -> 2.6 * fix.. jerk_l limit 5->10 * fix.. * fix.. gm * fix.. OPTIMA_H mass * fix.. radar.. * fix radar.. * fix.. * Radar... * fix.. * fix.. * fix.. * fix.. radartrack 3 * fix.. * fix.. * fix.. * merge.. * fix.. canfd * fix.. * fix.. * fix.. * fix.. radard * new cut_in * Revert "new cut_in" This reverts commit b9b6e9b33318fe1ce7d626468139b17848efcdcd. * fix.. * new cut_in detect... * fix.. disp.. * fix.. * fix.. * fix.. center radar.. * fix.. radar y_sane.. * fix.. * fix.. * hkg jerk 10 -> 5 * fix.. * fix.. * fix.. radar dbc.. * fix.. * fix.. jLead filter.. * test new radar interface.. * fix.. * fix.. * test time... * Revert "test time..." This reverts commit 63e9187736985c4dc4b4f3736674ba7cda6adc3f. * fix radar.. * fix.. * FireHose model.. * tinygrad * Update interface.py * fix.. * fix.. nff toyota corolla_tss2 * fix.. * fix.. * fix.. radar * fix.. * fix.. radar, y_gate * fix.. radar.. * fix.. for clone.. * scc radar enable at low speed.. * fix.. settings.. * fix. * fix.. * fix.. radarTimeStep. * TR16 model again.. * RELEASE.md * fix cut-in detection... * fix.. registeration timeout 15sec.. * fix.. * fix.. radar processing. * fix.. * fix.. * fix.. * fix.. * fix.. * fix..
40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
import time, unittest
|
|
from tinygrad.runtime.support.hip_comgr import compile_hip
|
|
from tinygrad import Tensor
|
|
from tinygrad.device import Device
|
|
from tinygrad.engine.schedule import create_schedule
|
|
from tinygrad.codegen.opt.kernel import Kernel
|
|
|
|
class TestHIPCompileSpeed(unittest.TestCase):
|
|
@unittest.skipIf(Device.DEFAULT != "HIP", "only run on HIP")
|
|
def test_hip_compile(self):
|
|
a, b = Tensor([1,2,3,4,5]), Tensor([1,2,3,4,5])
|
|
out = a + b
|
|
lin = Kernel(create_schedule([out.uop])[-1].ast[0])
|
|
lin.to_program()
|
|
|
|
reference = """
|
|
#include <hip/hip_common.h>
|
|
typedef long unsigned int size_t;
|
|
extern "C" __attribute__((device)) __attribute__((const)) size_t __ockl_get_local_id(unsigned int);
|
|
extern "C" __attribute__((device)) __attribute__((const)) size_t __ockl_get_group_id(unsigned int);
|
|
extern "C" __attribute__((device)) __attribute__((const)) size_t __ockl_get_local_size(unsigned int);
|
|
extern "C" __attribute__((global))void {name}(int* data0, const int* data1, const int* data2) {{
|
|
int gidx0 = __ockl_get_group_id(0); /* 5 */
|
|
int val0 = data1[gidx0];
|
|
int val1 = data2[gidx0];
|
|
data0[gidx0] = (val0+val1);
|
|
}}
|
|
"""
|
|
|
|
def time_compile(code):
|
|
st = time.perf_counter()
|
|
compile_hip(code)
|
|
return (time.perf_counter() - st) * 1000
|
|
|
|
tinygrad_tm = min([time_compile(Device[Device.DEFAULT].renderer.render(f"test{i}", lin.uops)) for i in range(10)])
|
|
ref_tm = min([time_compile(reference.format(name=f"test{i}")) for i in range(10)])
|
|
print(f"tinygrad {tinygrad_tm:6.2f} ms")
|
|
print(f"reference {ref_tm:6.2f} ms")
|
|
assert (tinygrad_tm - ref_tm) <= 10
|